Например, setInterval (function () {yield call (api, param)}, 1000)
Как я могу опросить интерфейс, если я не использую yield, я не могу управлять состоянием
while (true) {
yield call(delay, 1000);
yield call(api, params);
}
Запись такой задержки сообщит, что undefind находится в утилитах redux-saga, тогда как dva должно вводить задержку?
const delay = timeout => {
return new Promise(resolve => {
setTimeout(resolve, timeout);
});
};
Наш проект в настоящее время реорганизован с помощью dva, и теперь мы сталкиваемся с этой проблемой, брат, спасибо, брат Цянь
Просто попробовал, работает, спасибо @sorrycc ! ! !
На странице @sorrycc есть операция, которая хочет прервать опрос. Что мне делать?
Привет,
Есть ли какие-нибудь подробные руководства по обработке эффектов саги? Я столкнулся с той же проблемой, такой как завершение опроса, повторный запуск и т. Д. Простой метод можно определить с помощью флага, а также есть cancel, fork, takeLatest. Интересно, можно ли привести несколько примеров для изучения?
Спасибо.
@sorrycc Я хотел бы еще раз спросить, если это так, что, если цикл может быть остановлен при срабатывании определенных событий?
Вам нужно использовать вилку redux-saga для создания задачи и отменить задачу, когда это необходимо.
* 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);
},
Самый полезный комментарий