ES6产生多个发电机

Gri*_*ead 5 javascript ecmascript-6

在ES6中,产量和发电机功能允许等待一旦功能执行.但我想等待多个发电机.这里的代码:

files.forEach(function* (file) {
    const uploadedFile = yield call([service, service.upload], file, config)
}
Run Code Online (Sandbox Code Playgroud)

callredux-saga效应

为了表达Saga逻辑,我们从Generator生成纯JavaScript对象.我们称之为对象效果

我想一次性解除所有上传,无需等待上一次完成并等待所有文件上传后,是否可以使用yield

Gri*_*ead 6

我真正想要的是这样的:

// correct, effects will get executed in parallel
const [users, repos]  = yield [
  call(fetch, '/users'),
  call(fetch, '/repos')
]
Run Code Online (Sandbox Code Playgroud)

call 这里只是回归承诺

当我们产生一系列效果时,生成器被阻塞,直到所有效果都被解决或者一旦被拒绝(就像Promise.all行为一样).