// 1) 调用方式
new People('whr').sleep(3).eat('apple').sleep(5).eat('durian'); // 2) 打印结果
'hello, whr' -(等待3s)--> 'whr eat apple' -(等待5s)--> 'whr eat durian' // 3) 以下是代码实现
class People {
constructor(name) {
this.name = name;
this.sayHello();
this.queue = Promise.resolve();
}
sayHello() {
console.log(`hello, ${this.name}`);
}
sleep(time) {
this.queue = this.queue.then(() => {
return new Promise(res => {
setTimeout(() => {
res();
}, time * 1000)
})
})
return this;
}
eat(food) {
this.queue = this.queue.then(() => {
console.log(`${this.name} eat ${food}`);
})
return this;
}
}