【发布时间】:2015-08-26 10:07:06
【问题描述】:
我有一系列承诺,一个接一个地运行。
var Sequence = Backbone.Collection.extend({
model: Timer,
_sequence() {
return this.reduce((promise,model)=>{
return promise.then(()=>{
return model.start(); // return a Promise
});
}, Promise.resolve());
},
start(count = 1) {
// this sequence must be repeated for n times, where n is at least one
return this._sequence();
}
});
模型是一个定时器。当我调用 model.start() 时,它会返回一个承诺,该承诺将在计时器到期时实现。
我怎样才能重复这个序列,这样我才能做到
var s1 = new Sequence([timer1, timer2, timer3]);
s1.start(2).then(function(){
// the sequence was repeated 2 times
});
有什么建议吗?谢谢。
【问题讨论】:
标签: javascript backbone.js ecmascript-6 es6-promise