由于浏览器中不支持抢占式多任务处理,并且 JavaScript 本质上是单线程的,因此像 redux-saga 这样的 Redux 中间件如何处理不是为协作式多任务处理而设计的无限循环而不触发长时间运行的脚本对话框?
function* watchSaga() {
while (true) {
yield take(SOME_REQUEST);
// do something
}
}
编辑
我的说法“不是为合作多任务而设计的”是错误的。生成器函数的代码仅在第一个yield表达式之前执行。