2026-04-30 19:32:10 +03:00
---
title: Передача промиса ниже
description: Как запускать серверный REST-запрос выше и ожидать е г о во вложенном server-компоненте.
keywords: [rest, promise, suspense, streaming, server components]
---
# Передача промиса ниже
Серверный компонент может запустить запрос и передать промис вложенному server-компоненту. Это полезно, когда часть UI можно загрузить отдельно через `Suspense` .
## Когда использовать
- Верхняя часть страницы может отрендериться без этих данных.
- Данные нужны только вложенному server-компоненту.
- Нужна `Suspense` -граница и серверный стриминг.
## Пример
```tsx
// src/app/(routes)/pets/page.tsx
import { Suspense } from 'react'
2026-05-08 08:21:34 +03:00
import { petStoreApi } from 'infra/pet-store-api'
2026-04-30 19:32:10 +03:00
import { PetListSection } from 'widgets/pet-list-section'
import { PetListSkeleton } from 'widgets/pet-list-section'
2026-05-08 08:21:34 +03:00
import type { Pet } from 'infra/pet-store-api'
2026-04-30 19:32:10 +03:00
export default function PetsPage() {
const petsPromise = petStoreApi.pet.findPetsByStatus({ status: 'available' })
return (
< main >
< h1 > Питомцы< / h1 >
< Suspense fallback = {<PetListSkeleton / > }>
< AvailablePets petsPromise = {petsPromise} / >
< / Suspense >
< / main >
)
}
async function AvailablePets({ petsPromise }: { petsPromise: Promise< Pet [ ] > }) {
const pets = await petsPromise
return < PetListSection pets = {pets} / >
}
```
Запрос стартует в `PetsPage` , но ожидание происходит внутри `AvailablePets` . `Suspense` управляет fallback для этой части UI.
## Граница стратегии
Эта стратегия остаётся серверной. Н е используйте её как замену GET-хукам в Client Components.
Если данные должны попасть в клиентский SWR-хук, используйте [Начальные данные для клиентских хуков ](./client-hooks-initial-data.md ).
## Что не делать
```tsx
// Плохо — передавать промис в произвольный клиентский компонент без ясной стратегии
return < PetListClient petsPromise = {petsPromise} / >
```
Для клиентского потребления есть отдельная стратегия через `SWRConfig fallback` и готовые GET-хуки REST-клиента.