130. LazyMan() を作る
シェアしよう
少し工夫が必要 - accepted / - tried
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.// Wake up after 10 seconds.// Eat Apple.// Wake up after 1 second.
sleepFirst(time: number)
では順序問わず、一番高い優先順位でsleepする。
LazyMan('Jack', console.log) .eat('banana') .sleepFirst(10) .eat('apple') .sleep(1)// Wake up after 10 seconds.// Hi, I'm Jack.// Eat banana// Eat apple// Wake up after 1 second.
こういうlazyなLazyMan()
を作ってください。