【发布时间】:2021-08-20 00:04:43
【问题描述】:
假设我们有一个异步生成器:
exports.asyncGen = async function* (items) {
for (const item of items) {
const result = await someAsyncFunc(item)
yield result;
}
}
是否可以映射这个生成器?基本上我想这样做:
const { asyncGen } = require('./asyncGen.js')
exports.process = async function (items) {
return asyncGen(items).map(item => {
//... do something
})
}
截至目前,.map 无法识别异步迭代器。
替代方法是使用 for await ... of ,但这远不如 .map 优雅
【问题讨论】:
-
.map()仅存在于数组上,而不存在于生成器上——异步与否。
标签: javascript node.js iterator map-function async-iterator