【问题标题】:I cannot reach to variable declared outside of mongodb function我无法访问在 mongodb 函数之外声明的变量
【发布时间】:2021-05-22 19:57:46
【问题描述】:

标题说明了一切我都试过了,但变量只是在 console.log 中返回 undefined

var kategorilerArray;
dbo.collection("anasayfaKategoriler").find().sort(mysort).toArray(function (err, resultKategoriler) {
    if (err) throw err;
    kategorilerArray = resultKategoriler;
    //console.log(kategorilerArray);
});
console.log(kategorilerArray); // > undefined

【问题讨论】:

  • toArray 是否接受回调?

标签: javascript mongodb variables var console.log


【解决方案1】:

您记录 undefined 的原因是因为这就是 JS 的工作方式,这意味着该行代码将发生在 kategorilerArray 分配之前。 该行将在回调之前运行(toArray 函数接收该回调),然后才会发生对 kategorilerArray 的分配。

您可以通过在 toArray 回调函数中添加 kategorilerArray 赋值或等待 toArray 函数然后进行赋值来修复它。

这是 JS 事件循环的一部分。

您可以在本文中了解更多信息: https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5

【讨论】:

  • 谢谢你,先生,我通过插入等待修复了它。
【解决方案2】:

我修好了,只声明 express app.post async

var yorumlarArray = await dbo.collection("yorumlar").find().sort(mysort).toArray();
var kategorilerArray = await dbo.collection("anasayfaKategoriler").find().sort(mysort).toArray();
console.log(kategorilerArray);

【讨论】:

    猜你喜欢
    • 2015-11-09
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2017-08-31
    • 2021-11-11
    相关资源
    最近更新 更多