Dva: @ 云 谦 Cómo sondear la llamada de rendimiento (api, param), usando setInterval provocará un error de sintaxis

Creado en 8 nov. 2016  ·  10Comentarios  ·  Fuente: dvajs/dva

Por ejemplo, setInterval (function () {yield call (api, param)}, 1000)

question

Comentario más útil

const delay = timeout => {
  return new Promise(resolve => {
    setTimeout(resolve, timeout);
  });
};

Todos 10 comentarios

¿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);
    },
¿Fue útil esta página
0 / 5 - 0 calificaciones