异步调用队列
javascript
class Queue {
constructor(name) {
this.name = name;
this.result = Promise.resolve();
}
sayHi() {
this.result = this.result.then(() => {
console.log(`I'm ${this.name}`);
});
return this;
}
sleep(num) {
this.result = this.result.then(
() =>
new Promise((resolve) => {
setTimeout(() => {
console.log(`wait ${num}`);
resolve();
}, num);
})
);
return this;
}
}
class Queue {
constructor(name) {
this.name = name;
this.result = Promise.resolve();
}
sayHi() {
this.result = this.result.then(() => {
console.log(`I'm ${this.name}`);
});
return this;
}
sleep(num) {
this.result = this.result.then(
() =>
new Promise((resolve) => {
setTimeout(() => {
console.log(`wait ${num}`);
resolve();
}, num);
})
);
return this;
}
}