Node.js nodejs-在前一个使用承诺终止后按顺序调用函数

Node.js nodejs-在前一个使用承诺终止后按顺序调用函数,node.js,promise,Node.js,Promise,我尝试按以下顺序调用函数call2(),然后调用call3(),因此只有在call2()终止时才调用call3()。我用承诺来实现这一点 但是在call2()终止之前调用call3()。这是我的密码: function call2() { return new Promise(function (resolve, reject) { setTimeout(function () { console.log("calling 2");

我尝试按以下顺序调用函数call2(),然后调用call3(),因此只有在call2()终止时才调用call3()。我用承诺来实现这一点

但是在call2()终止之前调用call3()。这是我的密码:

function call2() {
    return new Promise(function (resolve, reject) {
        setTimeout(function () {
            console.log("calling 2");
            resolve(true);
        }, 3000);
    });
}

function call3() {
    console.log("calling 3");    
}

call2().then(call3());
我显然做错了什么,或者不明白如何使用承诺。有什么帮助吗?

中,然后(call3())
如果您正在调用call3函数,而不是将其作为回调传递,请更改为:

call2().then(call3);
函数调用2(){
log('Start…');
返回新承诺(功能(解决、拒绝){
setTimeout(函数(){
控制台日志(“调用2”);
决心(正确);
}, 3000);
});
}
函数call3(){
控制台日志(“调用3”);
}
call2()。然后(call3)
中,然后(call3())
如果您正在调用call3函数,而不是将其作为回调传递,请更改为:

call2().then(call3);
函数调用2(){
log('Start…');
返回新承诺(功能(解决、拒绝){
setTimeout(函数(){
控制台日志(“调用2”);
决心(正确);
}, 3000);
});
}
函数call3(){
控制台日志(“调用3”);
}

call2()。然后(call3)您必须将调用3包装到函数中:

call2().then(()=>call3());

您必须将调用3包装到函数中:

call2().then(()=>call3());

就这样!非常感谢:-)就这样!非常感谢:-)