gpt4 book ai didi

javascript - 为什么不在回调中使用函数?

转载 作者:行者123 更新时间:2023-12-02 14:07:15 24 4
gpt4 key购买 nike

第一个功能(findOne)工作正常。但是这里回调中的所有 Mongoose 函数都无法正常工作,没有任何错误。为什么?谢谢!

var mongoose = require('mongoose');

var Links = require('../models/Links');

mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/soft');

Links.findOne({}, function(err, l) {
if (err) throw err;
console.log("1", l);
Links.findOne({}, function(err, l_) {
if (err) throw err;
console.log("2", l_);
});
});

mongoose.connection.close();

最佳答案

代码在第二个 .find 有机会被调用之前关闭连接。由于 .find 是异步的,因此代码执行第一个调用(有一个要执行的连接),但随后继续并在第一个调用返回以执行第二个调用之前断开连接。

.close 调用移至第二个调用内将允许进行这两个调用。

var Links = require('../models/Links');

mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost:27017/soft');

Links.findOne({}, function(err, l) {
if (err) throw err;
console.log("1", l);
Links.findOne({}, function(err, l_) {
if (err) throw err;
console.log("2", l_);
mongoose.connection.close();
});
});

关于javascript - 为什么不在回调中使用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39934581/

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