130. 创建LazyMan()
分享给更多人
中等难度 -通过 / -执行
LazyMan
除了吃就是睡,很lazy。
LazyMan(name: string, logFn: (log: string) => void)
通过传入logFn
打印信息。
LazyMan('Jack', console.log)
// Hi, I'm Jack.
可以eat(food: string)
LazyMan('Jack', console.log)
.eat('banana')
.eat('apple')
// Hi, I'm Jack.
// Eat banana.
// Eat Apple.
可以sleep(time: number)
,单位是秒。
LazyMan('Jack', console.log)
.eat('banana')
.sleep(10)
.eat('apple')
.sleep(1)
// Hi, I'm Jack.
// Eat banana.
// (after 10 seconds)
// Wake up after 10 seconds.
// Eat Apple.
// (after 1 second)
// Wake up after 1 second.
sleepFirst(time: number)
的话,无论顺序如何,最优先sleep。
LazyMan('Jack', console.log)
.eat('banana')
.sleepFirst(10)
.eat('apple')
.sleep(1)
// (after 10 seconds)
// Wake up after 10 seconds.
// Hi, I'm Jack.
// Eat banana
// Eat apple
// (after 1 second)
// Wake up after 1 second.
请创建一个如此懒惰的LazyMan()
。