美文网首页
Promise 学习4

Promise 学习4

作者: 老米拉 | 来源:发表于2022-03-30 08:55 被阅读0次

第四段代码

let p = new Promise((resolve, reject) => {
  console.log("外部promise");
  resolve();
})
p.then(() => {
    console.log("外部第一个then");
    new Promise((resolve, reject) => {
      console.log("内部promise");
      resolve();
    })
      .then(() => {
        console.log("内部第一个then");
      })
      .then(() => {
        console.log("内部第二个then");
      });
  })
p.then(() => {
    console.log("外部第二个then");
  });

这段代码中,外部的注册采用了非链式调用的写法,根据上面的讲解,我们知道了外部代码的 p.then 是并列同步注册的。所以代码在内部的 new Promise 执行完,p.then 就都同步注册完了。

内部的第一个 then 注册之后,就开始执行外部的第二个 then 了(外部的第二个 then 和 外部的第一个 then 都是同步注册完了)。然后再依次执行内部的第一个 then ,内部的第二个 then。

output:

外部promise  
外部第一个then  
内部promise  
外部第二个then  
内部第一个then  
内部第二个then

我相信,如果能看懂上面的四段代码之后,对 Promise 的执行和注册非常了解了。

如果还是不太懂,麻烦多看几遍,相信你一定能懂~~~~~~~~
核心思想:

Promise 的 then 的 注册微任务队列 和 执行 是分离的。
注册 : 是完全遵循 JS 和 Promise 的代码的执行过程。
执行 : 先 同步,再 微任务 ,再 宏观任务。

只有分开理解上述,才能真正理解它们的执行顺序~~~~~~~~~~~~~~~~

相关文章

  • Promise 学习4

    第四段代码 这段代码中,外部的注册采用了非链式调用的写法,根据上面的讲解,我们知道了外部代码的 p.then 是并...

  • ES6异步:Promise

    #Promise迷你书通过 ES6 Promise 和 jQuery Deferred 的异同学习 Promise

  • 异步模型promise,generator,async/awai

    异步4种情况: 回掉函数事件监听发布/订阅promise 为了解决上面的问题Promise出现了,Promise的...

  • JS:Promise 的resolve在setTimeout中

    , 输出:3 1 2 4原因:cal() 返回 Promise , await 会等待 Promise 结束(可...

  • 异步的学习

    1.promise 2.iterator 3.genarator 4.async 一。promise对象 ***异...

  • Node 学习(二)

    Promise学习 Promise含义 容器,保存异步操作的结果对象,获取异步操作的消息 Promise对象特点 ...

  • Promise笔记

    Promise学习(上): 资料: JavaScript Promise迷你书 原著:azu / 翻译:liubi...

  • ES9(二) —— Promise.finally

    目录 Promise是如何“兜底”操作的? 想了解全部的Promise? ES6-ES10学习版图 Promise...

  • es6之深入理解Promise

    一、promise入门 1. Promise对象是什么 2.以前回调这么写 3.用Promise 写回调 4.多层...

  • Adobe Photoshop 2020 v21.1.0.106

    by Promise (TEAmo)未作任何精简,完整功能仅增强组装而成。 如需学习更多PS知识,请加大佬QQ:4...

网友评论

      本文标题:Promise 学习4

      本文链接:https://www.haomeiwen.com/subject/lrovjrtx.html