Dva: @ 云 谦 Como pesquisar a chamada de rendimento (api, param), usando setInterval irá solicitar um erro de sintaxe

Criado em 8 nov. 2016  ·  10Comentários  ·  Fonte: dvajs/dva

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

question

Comentários muito úteis

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

Todos 10 comentários

Como posso pesquisar a interface, se eu não usar o rendimento, não posso operar o estado

while (true) {
  yield call(delay, 1000);
  yield call(api, params);
}

Atrasos de escrita como este reportarão que undefind está nos utils da saga redux, então como o dva deve introduzir atrasos?

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

Nosso projeto está atualmente refatorado com dva, e agora encontramos este problema, irmão, obrigado irmão Qian

Acabei de experimentar, funciona, obrigado @sorrycc ! ! !

Há uma operação na página @sorrycc que deseja encerrar esta votação. O que devo fazer?

Oi,
Existem tutoriais detalhados sobre o processamento de efeitos de saga? Eu encontrei o mesmo problema, como encerrar polling, reexecutar, etc. O método simples pode ser detectado com flag, e também há cancel, fork, takeLatest. Gostaria de saber se você pode dar alguns exemplos para aprender?
Obrigada.

@sorrycc , gostaria de perguntar novamente, se for esse o caso, e se o loop puder ser interrompido quando certos eventos forem acionados?

Você precisa usar o fork of redux-saga para gerar uma tarefa e cancelar a tarefa quando necessário.

    * 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);
    },
Esta página foi útil?
0 / 5 - 0 avaliações