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这有多个问题。。。