使用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事件循环中排队回调?
谢谢
答案 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')});