Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点将值传递给结果函数_Node.js - Fatal编程技术网

Node.js 节点将值传递给结果函数

Node.js 节点将值传递给结果函数,node.js,Node.js,下面是我的代码的样子 console.log(badgeList[i].id) //will output the badgeList id BadgeTriggered.findOne({ schoolID: mongoose.mongo.ObjectId(schoolID), badgeID: mongoose.mongo.ObjectId(badgeList[i].id)}).then(function (err, data) { console.log("get data")

下面是我的代码的样子

console.log(badgeList[i].id)  //will output the badgeList id

BadgeTriggered.findOne({ schoolID: mongoose.mongo.ObjectId(schoolID), badgeID: mongoose.mongo.ObjectId(badgeList[i].id)}).then(function (err, data) {
    console.log("get data")
    console.log(data)
    console.log("and show badgeList below: ")
    console.log(badgeList[i].id)  //badgeList[i] is undefined here
})

正如您在上面看到的,
badgeList[i]
在我尝试打印底部控制台low中的值时实际上不可用。那么我如何将
badgeList
传递给
findOne
结果函数呢?

这很奇怪。全局变量可以在回调中访问。我刚刚测试过,似乎无法重现您的问题。@fsociety我的错我的错。为了简单起见,我编辑了代码,但把它弄糟了。请查看更新的代码。我们使用的短语“如你所见”有所不同<代码>徽章列表在您的回调范围内,因此其他东西正在发挥作用。最有可能的是
i
不是您认为的那样,这可能是由于多种原因造成的,比如循环完成后回调正在运行,这意味着
i
将超过数组的长度。回调是异步的,通常会在传递回调的代码完成后执行。@I您介意在声明badgeList的地方共享全局代码吗?