javascript - 如何使用返回的 promise 来运行控制台消息

标签 javascript

我刚刚做了一个这样的场景:

function first()
{
  return new Promise(function(resolve, reject)
  {
    setTimeout((function()
    {
        console.log("first");
    }), 2000);

   });
}

function main()
{
  first();
  console.log("second")
}

main();

输出是第二个然后是第一个。如何使用 promise 在第一条控制台消息之后打印第二条控制台消息?我知道有人问类似的问题,但有关于函数和将 promise 存储到变量中的问题。我无法理解如何在我的案例中使用它。

非常感谢

最佳答案

您需要对 Promise 调用 .then,以便在 Promise 解析时运行函数。您还需要在 setTimeout 中调用 resolve() 来指示您希望 Promise 在超时回调运行时解析:

function first() {
  return new Promise(function(resolve, reject) {
    setTimeout(function() {
      console.log("first");
      resolve();
    }, 2000);

  });
}

function main() {
  first()
    .then(() => {
      console.log("second")
    });
}

main();

关于javascript - 如何使用返回的 promise 来运行控制台消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53366691/

相关文章:

javascript - 解决函数未触发

javascript - Polymer 纸张输入提交时如何调用函数?

javascript - 模板切换 View 的集合。 Backbone .js

javascript - CSS @keyframes 翻译动画闪烁后显示无

javascript - 带有关联的 RESTful API 设计

javascript - Angular ui-router 解析继承

javascript - 从用户上传设置 Three.js 背景

java - 使用动态 id 为 jQuery 中的隐藏字段赋值?

javascript - 当输入字段的长度达到限制时运行函数

javascript - 当鼠标退出 div 区域时自动折叠下拉导航