Как установить тайм-аут для вызова yield в React Redux-Saga - PullRequest
0 голосов
/ 08 марта 2019

В моем остальном бэкэнде API я выполняю тяжелую обработку, и обычно для получения результата требуется 1,5 минуты, в это время я получаю эту ошибку в моем приложении реакции внешнего интерфейса.

Error: timeout of 60000ms exceeded

Итак,одноранговое соединение потеряно.

Как установить время ожидания запроса в redux-saga

Ответы [ 2 ]

0 голосов
/ 08 марта 2019
export function* create(action) {
  try {
    const { payload } = action;
    const response = yield call(api.addPost, payload);
    if (response.status === 200) {
      console.log('pass 200 check');
      yield put(appActions.setResourceResponse(response.data));
      console.log(response.data);
      payload.push('/add-news');
    }
  } catch (error) {
    console.log(error);
    yield put(
      a.setResponse({
        message: error.response.data,
        status: error.response.status,
      }),
    );
  }
}
0 голосов
/ 08 марта 2019
import { eventChannel, END } from 'redux-saga'

function countdown(secs) {
  return eventChannel(emitter => {
      const iv = setInterval(() => {
        secs -= 1
        if (secs > 0) {
          emitter(secs)
        } else {
          // this causes the channel to close
          emitter(END)
        }
      }, 1000);
      // The subscriber must return an unsubscribe function
      return () => {
        clearInterval(iv)
      }
    }
  )
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...