作者:愿今夜不再孤单 | 来源:互联网 | 2024-10-15 11:45
1234567891011121314151617 (function () { console.log(1); var p4 = new Promise((resolve, rejec
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| (function () {
console.log(1);
var p4 = new Promise((resolve, reject) => {
resolve('ok');
setTimeout(() => {
console.log(6)
}, 500);
console.log(2);
});
console.log(3);
p4.then(value => {
console.log(5);
console.log(value);
});
console.log(4);
})();
// 1 2 3 4 5 ok undefined 6 |
问题:打印顺序为 4 5 ok 6?
这样理解正确么?Promise 异步是当前 event loop 的任务队列队尾添加了 resolve 的回调函数,而 setTimeout 我们知道是会下下一轮 event loop 的任务队列尾部添加回调函数。