Javascript 如何映射异步生成器?

Javascript 如何映射异步生成器?,javascript,node.js,iterator,map-function,async-iterator,Javascript,Node.js,Iterator,Map Function,Async Iterator,假设我们有一个异步生成器: exports.asyncGen=异步函数*(项){ 用于(项目的常数项){ const result=wait someAsyncFunc(项) 产量结果; } } 可以在这个发电机上绘图吗?基本上我想这样做: const{asyncGen}=require('./asyncGen.js') exports.process=异步函数(项){ 返回asyncGen(items).map(item=>{ //…做点什么 }) } 到目前为止,.map无法识别异步迭代

假设我们有一个异步生成器:

exports.asyncGen=异步函数*(项){
用于(项目的常数项){
const result=wait someAsyncFunc(项)
产量结果;
}
}
可以在这个发电机上绘图吗?基本上我想这样做:

const{asyncGen}=require('./asyncGen.js')
exports.process=异步函数(项){
返回asyncGen(items).map(item=>{
//…做点什么
})
}
到目前为止,
.map
无法识别异步迭代器

另一种方法是使用
等待。。。但这远没有像
那样优雅。map

提供的功能仍处于第2阶段。您可以使用或编写自己的
map
helper函数,不过:

async function* map(asyncIterable, callback) {
    let i = 0;
    for await (const val of asyncIterable)
        yield callback(val, i++);
}

exports.process = function(items) {
    return map(asyncGen(items), item => {
       //... do something
    });
};
.map()
仅存在于阵列上,而不存在于生成器上-异步或非异步。