javascript - 为什么 promise 同时有效?

标签 javascript

new Promise((resolve, reject) => {

  setTimeout(function() {
    console.log(1)
    resolve()
  }, 200)
  
}).then(new Promise((resolve, reject) => {

  setTimeout(function() {
    console.log(2)
    resolve()
  }, 0)
  
}))

为什么这个输出是 2 1,而不是 1 2? promise 应该按顺序做事?为什么会这样

最佳答案

then 的第一个参数是回调函数。引用 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then .

new Promise((resolve, reject) => {
    setTimeout(function () {
        console.log(1)
        resolve()
    }, 200)
}).then(() => {
    return new Promise((resolve, reject) => {
      setTimeout(function () {
         console.log(2);
         resolve();
    }, 0)});
});

关于javascript - 为什么 promise 同时有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59171220/

相关文章:

javascript - 如何使用三元语句来简化这段代码?

javascript - 自动完成谷歌地图

javascript - react 错误 : NotFoundError: Failed to execute 'removeChild' on 'Node' : The node to be removed is not a child of this node

javascript - 如何使用 Velocity 制作多级 Liferay 菜单?

javascript - 数据排序应该在客户端还是在服务器端完成?

javascript - 删除使用 Material ui 和 Reactjs 创建的列表中的任何项目

javascript - UI 自动化中的应用程序切换

javascript - Node 架构的正确格式 (BASIC)

javascript - 在 JavaScript 中检测选项卡/下载是否已完成加载

javascript - 两个 webpack 模块之间的复用功能