【发布时间】:2018-03-04 18:47:25
【问题描述】:
The relevant question 告诉我解决了一个新的承诺,即使它立即解决,它也安排在下一个循环中。但是,评论部分似乎是反例。
var p1 = Promise.resolve("p1")
/* console order will be "p2" "p1" */
// pattern1
// var p2 = Promise.resolve(Promise.resolve("p2"));
// pattern2
// var p2 = Promise.resolve(new Promise(function(resolve, reject){
// resolve("p2")
// }))
/* console order will be "p1" "p2" */
// pattern3
var p2 = new Promise(function(resolve, reject){
resolve(Promise.resolve("p2"));
})
p2.then(function(value){
console.log(value);
})
p1.then(function(value){
console.log(value);
})
在 Chrome v61.0.3163.91 中很奇怪,但在 Node.js 中正常。
注意:问题与the popular one 不同。只关注顺序问题:为什么不同的模式会产生不同的顺序?最好用事件循环来解释。
【问题讨论】:
-
@JaromandaX Chromium 60 和 Firefox 57 在此处登录
"p1","p2" -
@JaromandaX 没有。哪一个?仍然没有收集到实际问题是什么?
-
@JaromandaX 注释代码日志导致代码被调用的顺序。是
"p1"还是"p2"先记录,取决于哪个.then()先被调用。 -
哦......是的......别管我的cmets,测试错误:p
标签: javascript es6-promise event-loop