我正在学习JS中的Promise,想知道Promise如何与Job队列密切配合。为了解释我的困惑,我想向您展示以下代码:
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);
});
})
如果您查看上面的代码,那么是不是then()的回调会先被放入Job队列中,并等待promise解决?还是说仅在promise解决后,then()的回调才被推入Job队列中?
alert
。alert
的行为是非标准的,并且在浏览器之间(甚至在同一浏览器中,取决于选项卡是否处于活动状态)有所不同。 - T.J. Crowder