如何使用 promises 做无重复代码的系列
How to use promises to do series without duplicate code
我需要串联执行一段代码,我需要执行同一个函数N次
示例
// execute asynFunc 4 times in series
object.asynFunc()
.then(function() {
return object.asynFunc();
})
.then(function() {
return object.asynFunc();
})
.then(function() {
return object.asynFunc();
})
我想执行同一个函数 100 次
var count = 0;
if(count<=100){
object.asynFunc()
.then(function() {
count++;
return object.asynFunc();
})
此代码将执行函数 100 次
只需使用一个循环。
var lastPromise = Promise.resolve();
for (var x = 0; x < 100; x++) {
lastPromise = lastPromise.then(function () {
return object.asyncFunc();
});
}
您也可以在长度为 100 的数组上使用 Promise.reduce
来达到同样的效果。
Promise.reduce(new Array(100), function () {
return object.asyncFunc();
});
我需要串联执行一段代码,我需要执行同一个函数N次
示例
// execute asynFunc 4 times in series
object.asynFunc()
.then(function() {
return object.asynFunc();
})
.then(function() {
return object.asynFunc();
})
.then(function() {
return object.asynFunc();
})
我想执行同一个函数 100 次
var count = 0;
if(count<=100){
object.asynFunc()
.then(function() {
count++;
return object.asynFunc();
})
此代码将执行函数 100 次
只需使用一个循环。
var lastPromise = Promise.resolve();
for (var x = 0; x < 100; x++) {
lastPromise = lastPromise.then(function () {
return object.asyncFunc();
});
}
您也可以在长度为 100 的数组上使用 Promise.reduce
来达到同样的效果。
Promise.reduce(new Array(100), function () {
return object.asyncFunc();
});