一尘不染

在node.js中解决承诺之前,then()回调触发

node.js

使用node.js版本7.7.2,我要执行一个异步函数,然后在第一个函数完成后执行另一个函数,如下所示:

function foo() {

  return new Promise(function(resolve, reject) {

    // Do some async stuff

    console.log('foo is about to resolve');

    resolve();

  });

}



function bar(arg) {

  console.log(arg);

}



foo().then(bar('bar has fired'));

问题是此安装程序打印“栏已被开除”,然后打印“foo将要解决”。我期望的是,bar将等待触发,直到foo返回的promise被解决为止。我是否误解了then()如何将回调在node.js事件循环中排队?

谢谢


阅读 617

收藏
2020-07-07

共1个答案

一尘不染

如注释中所述,将一个函数传递给该函数then,当该函数被调用时,将bar使用您的params进行调用。

function foo() {

  return new Promise(function(resolve, reject) {

    // Do some async stuff

    console.log('foo is about to resolve');

    resolve();

  });

}



function bar(arg) {

  console.log(arg);

}



foo().then(function(){bar('bar has fired')});
2020-07-07