gpt4 book ai didi

javascript - 无法弄清楚 mongod 和 nodejs 的 promise

转载 作者:行者123 更新时间:2023-11-30 12:22:52 26 4
gpt4 key购买 nike

我有一个函数 getStuff() 需要返回针对 MongoDB 的查询结果。我正在使用 nodejs 和 mongod 模块。这是我得到的代码。

var mongo = require("mongod");
var url = "mongodb://localhost:27017/my-mongo";

function getStuff() {
var db = new mongo(url, ["stuff"]);
var promise = db.stuff.find()
.then(function (result) {
console.log(result);
return result;
}).done(function (data) {
console.log(data);
return data;
});
console.log(promise);
return promise;
}

exports.getStuff = getStuff;

我显然遗漏了一些关于 promises 如何运作的信息。我在前两个 console.log() 调用中获得了良好的数据。但是 getStuff() 函数总是返回未定义的。这看起来应该是一个 super 简单的用例,但我正在用头敲 table 试图让它正常工作。任何帮助将不胜感激。

最佳答案

您的最后一个日志和返回语句运行为您的 .find.then.done 链仍在执行(这对您来说是异步的!)。这就是为什么 promise 仍然是 undefined 的原因。

尝试返回整个 promise,比如
var promise = db.stuff.find()...试试
返回 db.stuff.find()...

关于javascript - 无法弄清楚 mongod 和 nodejs 的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30434488/

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