我正在学习 JS 中的 Promise,并对 Promise 如何在幕后与作业队列一起工作感到好奇。为了解释我的困惑,我想向您展示这段代码:
new Promise(function(resolve, reject) {
setTimeout(() => resolve(1), 1000);
}).then(function(result) {
alert(result); // 1
return new Promise((resolve, reject) => { // (*)
setTimeout(() => resolve(result * 2), 1000);
});
})
Run Code Online (Sandbox Code Playgroud)
如果你看上面的代码,是不是then()的回调被提前放入Job队列等待promise解析呢?或者,只有在 Promise 得到解决后,then() 的回调才会被推入作业队列吗?