--- 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' import { petStoreApi } from 'infrastructure/pet-store-api' import { PetListSection } from 'widgets/pet-list-section' import { PetListSkeleton } from 'widgets/pet-list-section' import type { Pet } from 'infrastructure/pet-store-api' export default function PetsPage() { const petsPromise = petStoreApi.pet.findPetsByStatus({ status: 'available' }) return (

Питомцы

}>
) } async function AvailablePets({ petsPromise }: { petsPromise: Promise }) { const pets = await petsPromise return } ``` Запрос стартует в `PetsPage`, но ожидание происходит внутри `AvailablePets`. `Suspense` управляет fallback для этой части UI. ## Граница стратегии Эта стратегия остаётся серверной. Не используйте её как замену GET-хукам в Client Components. Если данные должны попасть в клиентский SWR-хук, используйте [Начальные данные для клиентских хуков](./client-hooks-initial-data.md). ## Что не делать ```tsx // Плохо — передавать промис в произвольный клиентский компонент без ясной стратегии return ``` Для клиентского потребления есть отдельная стратегия через `SWRConfig fallback` и готовые GET-хуки REST-клиента.