Por exemplo setInterval (function () {yield call (api, param)}, 1000)
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);
},
Comentários muito úteis