gpt4 book ai didi

javascript - Redux 中间件是如何实现多任务的?

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

由于抢占式多任务处理在浏览器中不可用,并且 JavaScript 本质上是单线程的,因此像 redux-saga 这样的 Redux 中间件如何处理不适合协作多任务处理的无限循环而不触发长时间运行的脚本对话框?

function* watchSaga() {
while (true) {
yield take(SOME_REQUEST);
// do something
}
}

编辑

我的说法“不是为协作式多任务处理而设计”是错误的。生成器函数的代码仅执行到第一个 yield 表达式。

最佳答案

这个 while 不是无限循环,而是一个生成器 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators

yield 关键字退出函数,但其​​状态(包括最后执行的行)将保留到下次调用该函数时,即从最后执行的行后面的语句处重新启动,直到再次看到yield 关键字。

关于javascript - Redux 中间件是如何实现多任务的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41456031/

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