Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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:如何将当前值传递给回调函数?_Javascript_React Native - Fatal编程技术网

JavaScript:如何将当前值传递给回调函数?

JavaScript:如何将当前值传递给回调函数?,javascript,react-native,Javascript,React Native,我试图将当前值传递给回调函数。我以前和他一起工作,但这对我不起作用 for (var i = 0; i < 4; i++) { (function(_i) { var options = { //Options here }; console.log(_i); // 0, 1, 2, 3 LocalImageManager.download(options, function (results, _i) { console.

我试图将当前值传递给回调函数。我以前和他一起工作,但这对我不起作用

for (var i = 0; i < 4; i++) {
  (function(_i) {
    var options = {
        //Options here
    };
    console.log(_i); // 0, 1, 2, 3

    LocalImageManager.download(options, function (results, _i) {
      console.log(_i);  //undefined, undefined, undefined, undefined

      //Do stuff with results
    });

  }
})(i);
for(变量i=0;i<4;i++){
(功能(i){
变量选项={
//这里的选项
};
console.log(_i);//0,1,2,3
下载(选项,函数(结果,_i){
console.log(_i);//未定义,未定义,未定义,未定义
//用结果做事
});
}
})(i) );

问题是函数始终与“i”变量一起工作,循环完成后该变量未定义。

您需要更改
LocalImageManager的定义。下载
,因为您的回调方法仅从那里调用。您可以在不同的参数中发送
\u i
的值,或者使用在函数中传递的选项发送值,并在调用回调方法时使用。

for(var i=0;i<4;i++){
for (var i = 0; i < 4; i++) {
  (function(_i) {
    var options = {
      //Options here
    };
    console.log(_i); // 0, 1, 2, 3

    LocalImageManager.download(options, function (results) {
      console.log(_i); // 0, 1, 2, 3

      //Do stuff with results
    });
  })(i);
}
(功能(i){ 变量选项={ //这里的选项 }; console.log(_i);//0,1,2,3 LocalImageManager.download(选项、函数(结果){ console.log(_i);//0,1,2,3 //用结果做事 }); })(i) ); }
下载()中使用iLife<代码>LocalImageManager.download(选项,函数(结果,_i){(函数(_i){console.log(_i);//处理结果})(i);})
\u i
将可供所有嵌套函数访问。您不需要将其作为参数传递。您已在
函数(结果,\u i)
中再次声明了
\u i
,导致
\u i
无法从循环中获取,请更改为
函数(结果)
@Liam-看起来它已被关闭。只是OP把生命的结束括号放错了地方。是的,很好地发现@evolutionxbox这有多个问题。。。