cacheSignal¶
cacheSignal позволяет узнать, когда время жизни cache() закончилось.
1 | |
Сейчас cacheSignal используется только с серверными компонентами React.
Описание¶
cacheSignal¶
Вызовите cacheSignal, чтобы получить AbortSignal.
1 2 3 4 | |
Когда React закончит рендеринг, AbortSignal будет прерван. Это позволяет отменить любую незавершённую работу, которая больше не нужна. Рендеринг считается законченным, когда: - React успешно завершил рендеринг - рендеринг был прерван - рендеринг завершился ошибкой
Параметры¶
Эта функция не принимает никаких параметров.
Возвращаемое значение¶
cacheSignal возвращает AbortSignal, если вызван во время рендеринга. В противном случае cacheSignal() возвращает null.
Предупреждения¶
- Сейчас
cacheSignalпредназначен для использования только в серверных компонентах React. В клиентских компонентах он всегда возвращаетnull. В будущем он также будет использоваться для клиентских компонентов, когда клиентский кэш обновляется или инвалидируется. Не следует предполагать, что на клиенте он всегда будетnull. - Если вызвать
cacheSignalвне рендеринга, он вернётnull, чтобы было ясно, что текущая область видимости не кэшируется навсегда.
Использование¶
Отмена незавершённых запросов¶
Вызовите cacheSignal, чтобы прервать незавершённые запросы.
1 2 3 4 5 | |
Подводный камень
Вы не можете использовать cacheSignal, чтобы прервать асинхронную работу, начатую вне рендеринга, например
1 2 3 4 5 6 | |
Игнорирование ошибок после того, как React закончил рендеринг¶
Если функция выбрасывает исключение, это может быть из-за отмены (например, соединение с базой данных было закрыто). Вы можете использовать свойство aborted, чтобы проверить, была ли ошибка из-за отмены или это настоящая ошибка. Ошибки из-за отмены можно игнорировать.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Источник — https://react.dev/reference/react/cacheSignal