Задать вопрос
@lozick

Как реализовать в Redux Saga long polling?

Есть такой воркер, редьюсер которого через useEffect вызывается в компоненте

function* workerChatUpdate(action: PayloadAction<string>) {
  const id = action.payload;

  while (true) {
    try {
      console.log('workerChatUpdate');
      const chat: ChatPreview = yield call(updateChatPreview, id);
      console.log('chat: ' + chat);

      if (!chat) {
        throw new Error('Полученный чат пустой');
      }

      yield put(setChat({ chat, id }));
      yield delay(500);
      // eslint-disable-next-line @typescript-eslint/no-unused-vars
    } catch (error) {
      yield delay(500);
    }
  }
}


workerChatUpdate в консоль успешно выводится

запрос сам выглядит так

export const updateChatPreview = async (id: string) => {
  const result = await fetchAPI(`/chats/preview/update/${id}`, 'GET');
  console.log(result)
  return result
};


result тоже выводится, но вот console.log('chat: ' + chat); уже не срабатывает от слова совсем

со стороны бека всё отрабатывает правильно
  • Вопрос задан
  • 18 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы