gpt4 book ai didi

javascript - 如何修复返回 `undefined` 的异步函数?

转载 作者:行者123 更新时间:2023-11-30 14:21:22 27 4
gpt4 key购买 nike

我正在尝试从我的数据库中返回计数。 count().exec 方法返回一个 Promise。我正在尝试解决它以便将值返回给用户。但它返回 undefined

在我看来我已经很好地使用了 async/await 模式,所以有什么问题吗?我想不通。

这是我的代码片段:

app.get("/blog/page/:pageTargeted", (req, res) => {
var countQuery = Posts.estimatedDocumentCount().exec();

// estimate count of document in collecion
function estimation() {
countQuery.then(count => {
countStringified = count.toString();
return countStringified;
})
} // console.log => successfully returns a value

// set Data
async function setData() {
let countStringified = await estimation();
return countStringified;
}

// send Data
function sendData() {
setData().then(result => console.log("result in sendData: ", result));
} // undefined
sendData();
});

*** 编辑 *** :现在可以使用了,这是我的新代码片段:

setData().then(result => { // call an async/await functions chain
console.log("count in Post.find: ", result);
console.log("pageTargeted in Post.find: ", pageTargeted);

if (err) return console.error(err);
res.status(200).send(result);
});

我只是想知道是否必须将所有别有用心的过程包装在我的函数调用中。因此,如果可能的话,可能会进行一些重构以避免一些 hell 式的过程。无论如何,同时它有效,太棒了,谢谢。

最佳答案

您的 estimation() 函数返回 undefined 而不是返回一个 promise,这是因为您从回调函数返回了新的字符串。

countQuery.then(...) 替换为 return countQuery.then(...)

关于javascript - 如何修复返回 `undefined` 的异步函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688855/

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