感觉这样是不是只能在new的同时去调用eat sleep 如果第一步new 第二步在执行eat sleep 还是没法触发执行

来源:8-11 手写一个LazyMan,实现sleep机制

哈啰沃尔德

2022-04-20

如题

写回答

2回答

香饽饽0

2022-09-22

Lazyman {

    _name = _tasks = []

    constructor(name) {
        ._name = name
    }

    fire() {
        ._next()
        }

    _next() {
        task = ._tasks.shift()
        (task) {
            task()
        }
    }

    eat() {
        task = () => {
            console.log()
            ._next()
        }
        ._tasks.push(task)

        }

    sleep(time) {
        task = () => {
            setTimeout(() => {
                console.log()
                ._next()
            }time)
        }
        ._tasks.push(task)

        }
}

lz = Lazyman().eat().eat().sleep().eat().eat().sleep()
lz.eat().fire()

可以考虑手动触发

0
0

双越

2022-04-20

只要不是异步,应该都可以的。

0
0

2周刷完100道前端优质面试真题 双越最新力作

『前端面试真题100道』视频详解

1509 学习 · 642 问题

查看课程