最近在网上看到有部分人在面试(比如1月面试记)的时候被问到了LazyMan,而且网友也有不同的实现方式。这里我用两种方式实现了lazyman,以供参考,如有更好的方法,欢迎留言。
队列
这种方式,每次都是往queue里添加执行函数,next函数用来决定什么时候调用下一个函数。
|
|
这里有一点需要点一下,就是我的queue已经就绪了,该怎么执行呢,这里用到了setTimeout(function () {}, 0);
,在下一次事件循环就开始执行,因为所有向队列添加函数都是在同一次事件循环里。
Promise
|
|
这种方式我还没想好如何实现sleepFirst,如果有知道的朋友,欢迎留言。