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()

一边解释一边码字。

(2)
(97)