在Node Js中按顺序多次运行不同参数的函数

时间:2015-07-06 10:03:34

标签: javascript node.js q

我有一个带有值的数组,我希望运行一个带回调的函数,每个数组的值都作为一个参数顺序执行。意思是,运行带有第一个单元格值的函数,当它完成运行带有第二个单元格值的函数等时。我尝试使用Q而我似乎找不到用参数做的方法,它一直调用函数。

示例:

var array = [1,2,3,4,5]

var func1 = function(num){
  setTimeout(function(){
    console.log(num+num);
  }, 3000);
}

我希望以1作为参数运行该函数,当它以2作为参数运行时运行等

请注意我想按顺序运行它。

谢谢!

2 个答案:

答案 0 :(得分:0)

使用array.map

var array = [1,2,3,4,5]

var func1 = function(num){
  console.log(num+num);
}
array.map(func1)

答案 1 :(得分:0)

只需使用forEach

var array = [1,2,3,4,5]
var func1 = function(num){
  console.log(num+num);
}
array.forEach(func1);

和Promise一样喜欢(不工作代码,只是给出想法):

var array = [1,2,3,4,5]
var func1 = function(num){
     var p = new Deferred();
     setTimeout(function(){
         console.log(num+num);
         p.resolve(num+num)
     }, 3000);
     return p;
}
var count = 0;
function next() {
    func1(array[count++]).then(next);
}