【发布时间】:2021-02-28 01:18:37
【问题描述】:
我正在学习 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()的回调推入作业队列?
【问题讨论】:
-
注意:不要将
alert用于此类事情。alert的行为是非标准的,并且因浏览器而异(甚至使用相同的浏览器,取决于选项卡是否处于活动状态)。
标签: javascript promise