实现Lazyman

59 阅读1分钟

实现man.addSleep(1000).eatFood(‘haobao’).addSleep(1000).eatFood(‘gg’)

class LazyMan{
	constructor(){
		this.promise = Promise.resolve()
	}
	addSleep(time){
		this.promise = this.promise.then(()=>{
			return new Promise(resolve=>{
				setTimeout(()=>{
					resolve()
				},time)
			})
		})
		return this
	}
	eatFood(val){
		this.promise = this.promise.then(()=>{
			console.log(val)
		})
		return this
	}
}
let man = new LazyMan()
man.addSleep(1000).eatFood('haobao').addSleep(1000).eatFood('gg')