问题如下:
当使用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");来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4692/viewspace-3152716/ ,如需转载,请注明出处,否则将追究法律责任。