我试图将当前值传递给回调函数。我使用this answers来处理,但它对我没用。
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);
问题是功能始终与&#34; i&#34;变量,在循环结束后未定义。
答案 0 :(得分:0)
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);
}
答案 1 :(得分:-1)
您需要更改LocalImageManager.download
的定义,因为您的回调方法仅从那里调用。您可以在不同的参数中发送_i
的值,或者在调用回调方法时使用您在函数中传递的选项并使用它们。