我会用一个对象包装值。这样,您可以拥有一个
done属性来让循环知道您已完成。
// fn should return an object like// {// done: false,// value: foo// }function loop(promise, fn) { return promise.then(fn).then(function (wrapper) { return !wrapper.done ? loop(Q(wrapper.value), fn) : wrapper.value; });}loop(Q.resolve(1), function (i) { console.log(i); return { done: i > 10, value: i++ };}).done(function () { console.log('done');});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)