推荐一个强大的微任务库:immediate
immediatecross browser microtask项目地址:https://gitcode.com/gh_mirrors/im/immediate
项目介绍
在JavaScript的世界里,异步编程是不可或缺的一部分。而immediate
是一个小巧且高效的微任务库,它借鉴了NobleJS的setImmediate
、Cujo的When
和RSVP等知名库的思想,提供了一种在未来的事件循环中尽快执行函数的方式。对于那些追求极致性能和控制力的开发者来说,这是一个值得一试的工具。
项目技术分析
immediate
使用了一系列巧妙的技术来确保你的回调函数能尽可能快地运行:
- process.nextTick - 在真实的Node.js环境中,这是首选方法,因为它在I/O事件之前执行。
- queueMicrotask - 对于现代浏览器,它直接将任务放入V8管理的微任务队列中。
- MutationObserver - 快速且适用于大部分浏览器,但不支持Web Worker。
- MessageChannel - 当你需要在Web Worker内工作时,或者
postMessage
不适用时,这是一个备选方案。