麻烦请教一下老师,promise嵌套的执行顺序以及原因是什么?

来源:8-16 微任务和宏任务的根本区别

刀剑错

2022-03-26

麻烦请教一下老师,promise嵌套的执行顺序以及原因是什么?

new Promise(function (resolve, reject) {
    console.log('promise');
    resolve();
    new Promise(function (resolve, reject) {
        console.log('promise>>>');
        resolve();
    }).then(function () {
        console.log('resolved>>> 0')
    }).then(function () {
        console.log('resolved>>> 1')
    }).then(function () {
        console.log('resolved>>> 2')
    }).then(function () {
        console.log('resolved>>> 3')
    })
}).then(function () {
    console.log('resolved 0')
}).then(function () {
    console.log('resolved 1')
}).then(function () {
    console.log('resolved 2')
}).then(function () {
    console.log('resolved> 3')
})

图片描述

写回答

1回答

双越

2022-03-27

对于多个 Promise 同时执行多个 then 链式操作,JS 引擎会有一个优化策略:让这些 then 函数轮流执行,以避免单个 promise 的 then 占据太多 CPU 时间。

0
2
双越
回复
刀剑错
因为里面的 then 是先注册的,按照先后顺序来执行。
2022-03-27
共2条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程