2016-09-30 89 views
0

我有一个函数,我需要调用一些时间,而不是使用for循环,我使用的是async.whilst。但是我需要的是,在前一个调用完成之前,下一次调用函数并不会发生,这与async.whys不同。有没有一种方法来实现这一点(我使用setTimeout来暂停每次通话,但它不是很干净)。 非常感谢,Casync.whilst - 在调用之间暂停

+0

始终共享代码,这将更好地知道确切的问题 – abdulbarik

+0

我会尝试重写代码,所以我可以用'eachLimit',但依赖的你的代码。或递归。 – DrakaSAN

回答

0

我会使用forever构造。假设你的函数的名字myFunction的和接受作为参数的回调:

var count = 0; 
var limit = 10; // set as number of the execution of the function 

async.forever(
    function(next) { 
     myFunction(function() { 
      count++; 
      if(count < limit) { 
      next(); 
      } else { 
      next(true); 
      } 
     }) 
    }, 
    function(ended) { 
     // function calling iteration ended 
    } 
); 
+0

非常感谢 - 它似乎这样做。 NodeJS是一个非常不同的范例,因此它需要一些时间来适应它... C – Christian68