Answers
当然不是阻塞,本质上就是内部用各种数据结构帮你管理回调而已
promise的厉害之处就在于只用了一个api接口同时解决回调地狱和异步异常流程控制,还能轻松处理异步和同步流程混杂,说是JS语言内部缺少的一部分也不为过(实际上已经出现了原生Promise)
node的话我个人用的实现是bluebird,前端的话,jQuery的实现虽然有些问题但还是能用的
async.js则不同,更偏向于将每种常见的异步流程分别提供一个api来解决,错误处理和复杂异步逻辑的适应差promise一个档次,涉及其覆盖的常见异步流程的业务代码写起来比纯promise好看(其实promise的很多实现也开始学习async提供常见流程的简单封装)。而由于其本质上还是以回调为核心,一旦逻辑复杂起来,async.js的业务代码基本上还是迅速复杂、崩溃的命。
至于then.js,我只能说这个项目在设计上犯了一些根本性错误,而且不是严格意义上的开源项目,价值不大
火星後繼者
answered 10 years, 8 months ago