gpt4 book ai didi

javascript - 如何非阻塞调度

转载 作者:行者123 更新时间:2023-11-28 04:16:10 25 4
gpt4 key购买 nike

我遇到一个问题,即我的 UI 在执行 saga 期间被阻塞一秒钟。我试图让我的传奇不阻塞,看起来确实如此。它完成得非常快。为什么我的调度会阻塞直到传奇完成?

//Saga
function* test(action) {
console.time('test')
yield put({type : 'test'});
console.timeEnd('test')
}

function* changeFilterSaga(action) {
console.time('changeFilterSaga')
yield* test(test, action);
console.timeEnd('changeFilterSaga')
}

export default function* watchChangeFilter() {
yield takeLatest(FILTER_MYNDIGHET, changeFilterSaga);
}


//dispatch action
filterData: ({ apply, filter }) => {
console.time('filterData')
dispatch(changeFilter({ apply, filter }));
console.timeEnd('filterData') // everything blocks until I am here
}

最佳答案

调用 yield* test(test, action); 实际上是阻塞的。它与yield call(test, action)相同。为了使此调用非阻塞,您需要 fork 它:yield fork(test, action)

关于javascript - 如何非阻塞调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45827029/

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