在ES6中,yield和生成器函数允许等待一次函数执行。但我想等待多个生成器。
以下是代码:
以下是代码:
files.forEach(function* (file) {
const uploadedFile = yield call([service, service.upload], file, config)
}
call
是redux-saga效果。
为了表达Saga逻辑,我们从生成器中产生纯JavaScript对象。我们称这些对象为Effects。
我想一次性启动所有上传,而不必等待前一个上传完成,等到所有文件都上传完成后再等待一次,使用yield
是否可行?
call
是什么,这需要解释。如果你正在使用co
或其他类似的东西,你可以使用Promise.all
。你不能对yieldable本身这样做,只是因为生成器的本质。它们被yield
“暂停”。 - Estus Flaskcall
是来自 redux-saga 库的效果创建函数 https://github.com/redux-saga/redux-saga - Sergiy Kozachenkocall(...)
的结果是什么?如果它是一个Promise,那么答案适用。如果不是,那就不适用。 - Estus Flask