我有一个带有值的数组,我希望运行一个带回调的函数,每个数组的值都作为一个参数顺序执行。意思是,运行带有第一个单元格值的函数,当它完成运行带有第二个单元格值的函数等时。我尝试使用Q而我似乎找不到用参数做的方法,它一直调用函数。
示例:
var array = [1,2,3,4,5]
var func1 = function(num){
setTimeout(function(){
console.log(num+num);
}, 3000);
}
我希望以1作为参数运行该函数,当它以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);
}