问题如下:
当使用bluebird和nodejs原生Promise执行下列代码时,其执行顺序有些出入,请问一下这个是因为什么?
/**
* 若用bluebird,则输出顺序为 2 3 5 6 1 4
* 原生Promise,则输出顺序为 2 3 5 6 4 1
*/
// var Promise = require("bluebird");
setTimeout(() => {
console.log("1");
}, 0);
process.nextTick(function() {
console.log("6");
});
new Promise(function(resolve, reject) {
console.log("2");
var st = new Date().getTime();
while(new Date().getTime() - st < 1000) {}
resolve("ok");
console.log("3");
})
.then(function() {
console.log("4");
});
console.log("5");