我在回调中迭代数组时遇到问题。但这是具体问题。
我有一个循环:
arr.forEach(function(value, index, array){});
在循环中我调用了一些异步函数:
arr.forEach(function(value, index, array)
{
asFun1(function(i, val){ return function (param1, param2)
{
};}(index, value));
});
在回调被触发后,我需要为该对象设置新的回调,然后调用另一个异步函数:
arr.forEach(function(value, index, array)
{
asFun1(function(i, val){ return function (param1, param2)
{
obj.callback = (function(in, v){ return function (param3, param4)
{
//make something
};}(i, val))
obj.asFun2();
};}(index, value));
});
所以,解决我在obj类中实现的回调数组和迭代器的问题。在循环中,我没有设置回调,只是添加数组。当第一个回调触发时,我命令obj迭代器转到下一个回调:
arr.forEach(function(value, index, array)
{
asFun1(function(i, val){ return function (param1, param2)
{
obj.callback.addCallback(function(in, v){ return function (param3, param4)
{
obj.nextCallback();
//make something
};}(i, val))
obj.asFun2();
};}(index, value));
});
但是当我测试它时,值和索引在数组中是最后的。我已经尝试了很多方法来解决它,但它没有用。