Javascript 回调中的NodeJS局部变量
我,, 我知道,关于这方面有很多信息,但我没有找到适合我情况的正确答案 我有一段代码:Javascript 回调中的NodeJS局部变量,javascript,node.js,callback,Javascript,Node.js,Callback,我,, 我知道,关于这方面有很多信息,但我没有找到适合我情况的正确答案 我有一段代码: for(var i=0; i < shop.collections.length; i++){ if(!shop.collection[i].active){ var data = { name: shop.collection[i].name, visible: true }; myOwnService.createCollection(data,
for(var i=0; i < shop.collections.length; i++){
if(!shop.collection[i].active){
var data = {
name: shop.collection[i].name,
visible: true
};
myOwnService.createCollection(data, accessToken, function(err, response, body){
shop.collections[i].serviceId = body.id;
})
}
for(var i=0;i
我的问题是
shop
在myOwnService.createCollection()中未定义
service。访问回调中的shop
变量的正确方法是什么,因此如何更新对象以便保存结果?shop
位于myOwnService.createCollection
函数的父范围内,因此可以在其中访问它
上述代码中唯一的问题是i
在callback
中使用,它将始终是最后一个值,因为它将在事件循环之后执行
使用IIFE
包装myOwnService.createCollection
以便可以传递i
的范围
for(var i=0;i
shop
位于myOwnService.createCollection
函数的父范围内,因此可以在其内部访问它
上述代码中唯一的问题是i
在callback
中使用,它将始终是最后一个值,因为它将在事件循环之后执行
使用IIFE
包装myOwnService.createCollection
以便可以传递i
的范围
for(var i=0;i
它应该可以在您尝试访问的内部访问。如果您正在绑定Chrome调试器以查看它是否具有该值,Chrome调试器有时会出错并显示为不可用
它应该可以在您尝试访问的内部访问。如果您正在绑定Chrome调试器以查看它是否具有该值,Chrome调试器有时会出错并显示为不可用
如果使用es6,可以使用let代替var如果使用es6,可以使用let代替var