什么是惯用的方式做一些像承诺的while循环.所以:
如果条件仍然有效,请再做一次然后再做其他事情.
dosomething.then(possilblydomoresomethings).then(finish)
Run Code Online (Sandbox Code Playgroud)
我是这样做的,我想知道是否有更好/更多的自我方式?
var q = require('q');
var index = 1;
var useless = function(){
var currentIndex = index;
console.log(currentIndex)
var deferred = q.defer();
setTimeout(function(){
if(currentIndex > 10)
deferred.resolve(false);
else deferred.resolve(true);
},500);
return deferred.promise;
}
var control = function(cont){
var deferred = q.defer();
if(cont){
index = index + 1;
useless().then(control).then(function(){
deferred.resolve();
});
}
else deferred.resolve();
return deferred.promise;
}
var chain = useless().then(control).then(function(){console.log('done')});
Run Code Online (Sandbox Code Playgroud)
输出:1 2 3 4 5 6 7 8 9 10 11完成