// 测试代码
console.log('main1');
// 该函数仅在 Node.js 环境下可以使用
process.nextTick(function(){
console.log('process.nextTick1');
});
setTimeout(function(){
console.log('setTimeout');
process.nextTick(function(){
console.log('process.nextTick2');
});
},0);
newPromise(function(resolve,reject){
console.log('promise');
resolve();
}).then(function(){
console.log('promise then');
});
console.log('main2');
// 执行结果
main1
promise
main2
process.nextTick1
promise then
setTimeout
process.nextTick2
function foo(){
console.log("Start of queue");
bar();
setTimeout(function(){
console.log("Middle of queue");
},0);
Promise.resolve().then(function(){
console.log("Promise resolved");
Promise.resolve().then(function(){
console.log("Promise resolved again");
});
});
console.log("End of queue");
}
function bar(){
setTimeout(function(){
console.log("Start of next queue");
},0);
setTimeout(function(){
console.log("End of next queue");
},0);
}
foo();
// 输出
Start of queue
Endof queue
Promise resolved
Promise resolved again
Start of next queue
Endof next queue
Middle of queue
Promise.then 是异步执行的,而创建 Promise 实例 (executor) 是同步执行的
网友评论