【发布时间】:2019-06-05 16:48:18
【问题描述】:
这个问题的意图与Difference between microtask and macrotask within an event loop context 非常相似,但更具体的是,它要求解释一个明确的例子:我认为因此不应将其视为重复。
node.js中这段代码执行过程中Macrotask queue和Microtask queue的状态是什么
console.log("A1");
(async ()=> {
console.log("1")
f = async ()=>{console.log('2')}
await f()
console.log("3")
})()
console.log("A2");
输出:
A1
1
2
A2
3
我预期的输出: A1,A2,'1','2','3'
基于这个推理:log A1 --> 在微任务队列中加入匿名函数--> log A2 --> 执行匿名函数log 1,在微任务队列中加入f--> 从微任务队列中执行f-->日志 2 --> 日志 3
我哪里错了? (另外,顶级异步函数是如何入队的?)
注意:用于运行它的实际命令是 npx babel-node myscript.js
【问题讨论】:
-
只是,没有理由,我正在使用 babel 做别的事情,碰巧在这里使用它
-
(对于潜伏者:Babel 输出也是最新的 Node.js 原生地使用此代码所做的。)
标签: javascript node.js async-await