gpt4 book ai didi

javascript - 如何访问nodejs函数表达式中的变量

转载 作者:行者123 更新时间:2023-12-02 22:33:31 25 4
gpt4 key购买 nike

有没有办法获取变量data的内容函数之外。我很困惑,在 stackoverflow 中查看了各种论坛,但失败了。我正在尝试从 Mongoose 模型检索数据并将这些结果推送到数组 results当我打印results时数组,我得到空数组。

  var results = []
Model.find({firstName:name}, function(err,data){
if(err)
throw err;

data.forEach(function(element) {
console.log(element);
results.push(element);
});
});
console.log(results) --> []

但是当我尝试打印ForEach内的数据时,我得到了结果,如下所列。

0 => { _id: 5dc9953a2168993711903698,
id: 763,
firstName: 'Deepak',
lastName: 'Kalra',
image_id: 'No',
logged: false,
__v: 0
}
1 => {
_id: 5dc995546f0f88372080ea36,
id: 511,
firstName: 'Deepak',
lastName: 'Kalra',
image_id: 'No',
logged: false,
__v: 0
}

整个代码

  alexa.intent("FirstName", {
"slots": { "name": "AMAZON.FIRST_NAME" },
"utterances": [
"sure {-|name}","{-|name}","my name is {-|name}"
]
},
function(request, response) {
var name = 'Deepak';
try {
var results = await Model.find({firstName:name});
console.log(results)
} catch (error) {
// Handle error.
}

// Model.find({firstName:name}, function(err,data){

// if(err)
// throw err;
// data.forEach(function(element) {
// console.log(element);
// results.push(element);
// });
// });

console.log(results);
});

有什么解决办法吗?请帮助我

最佳答案

因为,console.log(results)Model.find 完成之前执行。

您可以在这里做两件事:

  • console.log(results) 放入回调内。
  • 使用async/await来获得类似的行为。

示例(回调):

Model.find({firstName:name}, function(err,data){       
if(err)
throw err;

console.log(data); // data is already an array
});

示例(异步/等待):

try {
var results = await Model.find({ firstName: name });
console.log(results)
} catch (error) {
// Handle error.
}

Model.find 已经返回文档数组,因此您不必运行循环将它们推送到数组中。

已更新

alexa.intent("FirstName", {
"slots": { "name": "AMAZON.FIRST_NAME" },
"utterances": [
"sure {-|name}", "{-|name}", "my name is {-|name}"
]
},
async function (request, response) {
var name = 'Deepak';
try {
var results = await Model.find({ firstName: name });
console.log(results)
} catch (error) {
// Handle error.
}
});

注意函数前面的async

关于javascript - 如何访问nodejs函数表达式中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813952/

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