Хорошо, тогда нам надо немного поменять файл, например на такой:
[{"duration" : 10500, "console":"test1"},
{"duration" : 14500, "console":"test3"},
{"duration" : 15000, "console":"test"}]
Далее:
ajax.get('test.txt',{},function(responses){
new Timer(JSON.parse(responses));
},true);
А как здесь?:
class Timer {
constructor(data) {
this.data = data.map(obj => ({...obj,beginTime : performance.now()}));
requestAnimationFrame(this.loop.bind(this));
}
loop(time){
this.data = this.data.filter({beginTime,duration,fn} => {
const end = time - beginTime >= duration;
if(end) {
fn() //?????
}
else return true
})
this.data.length && requestAnimationFrame(this.loop.bind(this))
}
}