Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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
Javascript 回调中的NodeJS局部变量_Javascript_Node.js_Callback - Fatal编程技术网

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