我有一个数组,我希望将其值用作异步函数的输入。但是当我遍历我的数组并将它们发送到异步函数时,对异步函数的所有调用似乎都是由数组中的最后一个值完成的。
我认为这类问题是通过回调解决的,但是函数是我正在使用的库,它不提供任何回调。我该怎么做才能使异步函数处理所有单个数组值??
var libraryName = new Library("#div");
$.post("myfile.php", {somedata}, function(data){
console.log(data); //prints all correct values
for(i in data){
libraryName.asynchronousFunction({
name: data[i].name // <--this value only becomes the last value in the data-array for all calls
});
}
});
答案 0 :(得分:0)
因为闭包而尝试这样的事情:
$.post("myfile.php", {somedata}, function(data){
console.log(data); //prints all correct values
for(i in data){
(function(elem) {
libraryName.asynchronousFunction(
{name: elem.name}
);
})(data[i]);
}
});