Promises 和异步编程

2014-03-25 W.Y. 更多博文 » 博客 » GitHub »

Async Promise When

原文链接 https://bubkoo.github.io/2014/03/25/promises-and-async-programming/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


在 JavaScript 中处理异步和回调就是家常便饭,我们通常会面对这样一些问题:

  1. 如何优雅滴组织我们的回调代码
  2. 对异步函数错误处理的最佳实践是什么
  3. 异步嵌套问题
  4. 怎样使我们的代码可读性和可维护性更高

Programs are meant to be read by humans and only incidentally for computers to execute. 程序是给人读的,只是顺带让计算机执行一下。 ——《编写可维护的JavaScript》@Donald Knuth

当然,最常见也是最简单的处理方式就是,直接将回调函数或错误处理函数作为异步函数的参数,在异步函数返回时进行相应的调用,这种方式的缺陷估计大家心里或多或少都有点见解。难道就没有爽的编程模式?

这里分享了几篇文章,主要讲解了 JavaScript 中的 Promise 机制,以及如何使用它来改善我们的异步编程和回调问题。其中三篇参阅了 http://nuysoft.com/2013/08/29/async-programming/ ,另外一篇来自 html5rocks 的 Promise 教程

下图是 jQuery 中动画回调链,图片来自 @司徒正美 的 MVC 分享 PPT。

回调的噩梦

<!--more-->