Por ejemplo, setInterval (function () {yield call (api, param)}, 1000)
¿Cómo puedo sondear la interfaz? Si no uso rendimiento, no puedo operar el estado
while (true) {
yield call(delay, 1000);
yield call(api, params);
}
Escribir un retraso como este informará que undefind está en las utilidades de redux-saga, entonces, ¿cómo debería dva introducir el retraso?
const delay = timeout => {
return new Promise(resolve => {
setTimeout(resolve, timeout);
});
};
Nuestro proyecto está actualmente refactorizado con dva, y ahora nos encontramos con este problema, hermano, gracias hermano Qian.
Lo acabo de probar, funciona, ¡gracias
Hay una operación en la página @sorrycc que quiere terminar este sondeo, ¿qué debo hacer?
Hola,
¿Hay tutoriales detallados sobre el procesamiento de efectos de la saga? Encontré el mismo problema, como terminar el sondeo, volver a ejecutarlo, etc. El método simple se puede detectar con flag, y también hay cancel, fork, takeLatest. Me pregunto si puede dar algunos ejemplos para aprender.
Gracias.
@sorrycc Me gustaría volver a preguntar, si este es el caso, ¿qué pasa si el bucle se puede detener cuando se activan ciertos eventos?
Debe usar la bifurcación de redux-saga para generar una tarea y cancelar la tarea cuando sea necesario.
* forkInterval(actions, { fork, cancelled, put }) {
globalInterval = yield fork(function* () {
try {
while (true) {
yield delay(3000);
yield put({ type: 'youraction' });
}
} finally {
if (yield cancelled()) {
// 取消之后的操作,这里什么都不做
}
}
});
},
* clearInterval(actions, { cancel }) {
yield cancel(globalInterval);
},
Comentario más útil