我试图依次调用函数call2()和call3(),以便仅在call2()终止时才调用call3()。我正在使用Promise实现这一目标。

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

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());


我显然做错了,或者不明白如何使用promise。有什么帮助吗?

最佳答案

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

call2().then(call3);




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

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

call2().then(call3);

关于node.js - nodejs-使用Promise终止前一个函数后按顺序调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41767611/

10-09 23:10