Emi*_*mil 7 javascript generator node.js async-await
我试图在Node.js中创建异步生成器函数,但似乎是不可能的.
我的Node.js的版本:7.6.0.
我的代码:
async function* async_generator(){
for(let i = 0; i < 10; i++){
yield await call_to_async_func(i);
};
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
有谁知道这是什么问题?为什么我无法创建异步生成器函数,而我可以独立创建生成器函数或异步函数?
它在那里它确实有效,但目前它是和谐旗帜的背后.
example.js
async function* async_generator() {
for (let i = 0; i < 10; i++) {
yield await new Promise(r => setTimeout(_ => r("hello world"), 100))
};
}
async function main(){
for await (let item of async_generator()){
console.log(item);
}
}
main().catch(console.log);
Run Code Online (Sandbox Code Playgroud)
运行(在节点v8.5.0中适用于我)
node --harmony-async-iteration example.js
Run Code Online (Sandbox Code Playgroud)
请注意,该提案仍处于第3阶段,如果您想在浏览器中使用它,您可能还需要使用打字稿或babel进行转换.
更新:
从节点9开始,异步生成器被暂存.您只需使用即可启用它--harmony.