Dans mon backend API de repos, je fais un traitement intensif et généralement, cela prend 1,5 minute pour produire un résultat, pendant ce temps j'obtiens cette erreur dans mon application de réaction frontend.
Error: timeout of 60000ms exceeded
Ainsi, la connexion des pairs est perdue.
Comment définir le délai d'expiration des requêtes dans redux-saga
3 Réponses :
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) } } ) } Hope this helps.
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, }), ); } }
le timeout se produit pendant l'appel d'API depuis l'API rest de django
J'ai été utilisé race
pour de telles choses. Cela peut vous être utile.
const {posts, timeout} = yield race({ posts: call(fetchApi, '/posts'), timeout: delay(60 * 1000) }); if (timeout) throw new Error('timeout of 60000ms exceeded')
Cela peut se produire pour un certain nombre de raisons et vous n'avez donné aucun détail sur la configuration de votre application. Avez-vous vérifié votre serveur Web / proxy pour les délais d'expiration? Existe-t-il des délais d'expiration pour les appels ajax frontend effectués par react?