我正在尝试使用Promise实现while循环。
这里概述的方法似乎可行。http://blog.victorquinn.com/javascript-promise-while-loop它使用了以下函数
var Promise = require('bluebird');
var promiseWhile = function(condition, action) {
var resolver = Promise.defer();
var loop = function() {
if (!condition()) return resolver.resolve();
return Promise.cast(action())
.then(loop)
.catch(resolver.reject);
};
process.nextTick(loop);
return resolver.promise;
};
看起来这里使用了反模式和过时的方法,例如cast和defer。
有没有人知道更好或更现代的方法来实现这个?
谢谢
action()
函数具体做什么呢?也许可以展示一个如何使用它的例子? - jfriend00