Par exemple setInterval (function () {yield call (api, param)}, 1000)
Comment puis-je interroger l'interface, si je n'utilise pas yield, je ne peux pas faire fonctionner l'état
while (true) {
yield call(delay, 1000);
yield call(api, params);
}
Une écriture comme celle-ci signalera que undefind est dans les utils de redux-saga, alors comment dva devrait-elle introduire un délai?
const delay = timeout => {
return new Promise(resolve => {
setTimeout(resolve, timeout);
});
};
Notre projet est actuellement refactorisé avec dva, et maintenant nous rencontrons ce problème, frère, merci frère Qian
Je viens de l'essayer, ça marche, merci @sorrycc ! ! !
Une opération sur la page @sorrycc souhaite mettre fin à cette interrogation. Que dois-je faire?
salut,
Existe-t-il des didacticiels détaillés sur le traitement des effets de la saga? J'ai rencontré le même problème, comme la fin de l'interrogation, la réexécution, etc. La méthode simple peut être détectée avec flag, et il y a aussi cancel, fork, takeLatest Je me demande si vous pouvez donner quelques exemples à apprendre?
Merci.
@sorrycc Je voudrais demander à nouveau, si tel est le cas, que se passe-t-il si la boucle peut être arrêtée lorsque certains événements sont déclenchés?
Vous devez utiliser le fork de redux-saga pour générer une tâche et annuler la tâche si nécessaire.
* 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);
},
Commentaire le plus utile