循环内部的回调不同

时间:2014-03-21 12:56:47

标签: javascript arrays callback

我在回调中迭代数组时遇到问题。但这是具体问题。

我有一个循环:

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));
});

但是当我测试它时,值和索引在数组中是最后的。我已经尝试了很多方法来解决它,但它没有用。

0 个答案:

没有答案