gpt4 book ai didi

redux-saga - 如何为 yield put() 创建 setTimeout 循环

转载 作者:行者123 更新时间:2023-12-03 22:57:52 24 4
gpt4 key购买 nike

我有一个传奇观察者:

function* watchSetRefreshInterval() {
yield takeLatest(SET_LOOP, setLoop);
}

和一个 setLoop传奇
function* setLoop() {
yield put({type: ANOTHER_WATCHER });
}

我要 yield put({type: ANOTHER_WATCHER });间隔发生

这不起作用
setTimeout(function timeoutFn(){
yield put({type: ANOTHER_WATCHER });
setTimeout(timeoutFn, 5000);
}, 5000);

您不能使用 yield在非生成器函数中,使 timeoutFn发电机也不能正常工作。

怎么打电话 yield put在一个区间。我不想使用
while(true) {
yield delay(5000);
yield put({type: ANOTHER_WATCHER });
}

我想用 setTimeout功能。

最佳答案

在您的 saga 文件中,创建一个延迟函数,如:

const delay = time => new Promise(resolve => setTimeout(resolve, time));

然后创建观察者,如:
const fnWatcher = function* () {  
yield call(delay, 2000);
yield put({type: 'ACTION_SUCCESS'});
};

takeEvery("ACTION_NAME", fnWatcher);

关于redux-saga - 如何为 yield put() 创建 setTimeout 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49611120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com