// new Queue().task(1000, ()=>{
// console.log(1);
// }).task(2000, ()=>{
// console.log(2);
// }).task(3000, ()=>{
// console.log(3);
// }).start();
// function Queue() {
// let list = [];
// let curTime = 0;
// this.task= function(t, fn) {
// let data = {};
// curTime += t;
// data['t'] = curTime;
// data['fn'] = fn;
// list.unshift(data);
// return this;
// }
// this.start= function() {
// for (let i=0; i<list.length; i++) {
// (function(i){
// setTimeout(()=>{
// list[i]['fn']();
// }, list[i]['t'])
// })(i)
// }
// }
// }
function Queue(res) {
return new Promise((resolve)=>{
setTimeout(()=>{
resolve(res+1);
}, 1000);
})
}
function Task(res, time) {
return new Promise((resolve)=>{
setTimeout(()=>{
console.log(res);
resolve(res);
}, time);
})
}
Queue(1).then((res)=>{
return Task(2, 1000);
}).then((res)=>{
return Task(3, 3000);
}).then((res)=>{
return Task(4, 5000);
})
console