Titi小青菜 2023-03-09 08:17 采纳率: 0%
浏览 16

js中then()的问题

 Promise.resolve()
    .then(() => {
      console.log(0);
      return Promise.resolve(4);
    })
    .then((res) => {
      console.log(res);
    });

  Promise.resolve()
    .then(() => {
      console.log(1);
    })
    .then(() => {
      console.log(2);
    })
    .then(() => {
      console.log(3);
    })
    .then(() => {
      console.log(5);
    })
    .then(() => {
      console.log(6);
    });
  let res = Promise.resolve();
  console.log(res);

浏览器答案是0 1 2 3 4 5 6
为什么啊为什么 为什么不是 0 1 4 2 3 5 6 或者 0 1 2 4 3 5 6 为什么
请赐教啊

  • 写回答

2条回答 默认 最新

  • CodeBytes 2023-03-09 08:48
    关注

    该回答引用ChatGPT

    这是因为,在第一个 Promise.resolve() 中的第一个 then() 里,你返回了一个 Promise 对象,并在第二个 then() 中打印出 Promise 对象 resolve 的值 4。然后,第二个 Promise 中的 then() 依次被调用,按照它们被添加的顺序,打印出 1、2、3、5 和 6。

    所以最终的输出顺序是:0 1 2 3 4 5 6。

    如果你想要按照你提供的两种不同的顺序输出,请注意 Promise 的返回值和调用顺序。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月9日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 C# 爬虫融通金网址实时银价
  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了
  • ¥15 matlab做ba模型让其在ba和er规则下生长
  • ¥15 请问Quartus的Verilog代码怎么写?
  • ¥100 Mac 版foxmail 收邮件问题