gpt4 book ai didi

node.js - 为什么 Promise 在 .then 之后返回为

转载 作者:太空宇宙 更新时间:2023-11-04 01:21:36 25 4
gpt4 key购买 nike

所以我有这个代码;

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) 在完成处理后返回 doesUserExist() 的结果,但我得到的却是 Promise { } 打印的结果。

我以为 .this() 仅在 promise 履行后才执行?

最佳答案

因为 result 不是 doUserExist 返回的 Promise,而是来自 .then 链,在 .then 完成后不会被解析,这永远不会发生在 .then 内部

let result = prom(serverID, userID);

result.then(() => {
console.log(result); // Resolved
});
<小时/>

.then 返回一个 Promise

let promiseA = doesUserExist(serverID, userID);
let promiseB = promiseA
.then(() => console.log(promiseA, promiseB)) // Resolved, Pending

关于node.js - 为什么 Promise 在 .then 之后返回为 <Pending>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59117319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com