为什么Promise会以 在.then之后?

问题描述 投票:0回答:1

所以我有此代码;

function getUserData(serverID, userID) {
    connectToDB().then(() => {
        console.log(2);
        let result = doesUserExist(serverID, userID).then(() => {
            console.log(result);
        });
    });
}

function doesUserExist(serverID, userID) {
    return new Promise((resolve, reject) => {
        return resolve(PlayerModel.exists({serverID: serverID, userID: userID}));
    });
}

我希望console.log(result)在完成处理后返回dosUserExist()的结果,但是我得到的却是Promise {}的打印结果。

我以为.this()仅在实现诺言后才执行?

node.js
1个回答
0
投票

因为result不是Promise返回的doUserExist,而是从.then链返回的,.then完成后将无法解析,.then内部永远不会发生]]

let result = prom(serverID, userID)

result.then(() => {
   console.log(result); // Resolved
});
© www.soinside.com 2019 - 2024. All rights reserved.