实现 `sleep` 和 `eat` 两个方法
支持链式调用
const me = new LazyMan('li')
me.eat('苹果').eat('香蕉').sleep(5).eat('葡萄') // 打印结果如下:
// 'li eat 苹果'
// 'li eat 香蕉'
// (等待 5s)
// 'li eat 葡萄'
代码设计
由于有 sleep 功能,函数不能直接在调用时触发
初始化一个列表,把函数注册进去
由每个 item 触发 next 执行(遇到 sleep 则异步触发)
代码
/**
* @description lazy man
*/
class LazyMan {
private name: string
private tasks: Function[] = [] // 任务列表
constructor(name: string) {
this.name = n