then()在node.js中解析promise之前的回调触发

时间:2017-04-26 20:47:16

标签: javascript node.js ecmascript-6

使用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'));




问题在于此设置打印' bar已解雇'其次是&f; foo即将解决问题。我期待的是,在foo返回的承诺得到解决之前,酒吧将等待开火。我是否误解了then()如何在node.js事件循环中排队回调?

谢谢

1 个答案:

答案 0 :(得分:1)

如评论中所述,将一个函数传递给then,当被调用时,会使用您的参数调用bar

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')});