JavaScript Promise的常见问题

JavaScript Promise的常见问题
  回答常见的问题(FAQ)
  
  Q: then、catch 和 finally 序列能否顺序颠倒?
  
  A: 可以,效果完全一样。但不建议这样做,最好按 then-catch-finally 的顺序编写程序。
  
  Q: 除了 then 块以外,其它两种块能否多次使用?
  
  A: 可以,finally 与 then 一样会按顺序执行,但是 catch 块只会执行第一个,除非 catch 块里有异常。所以最好只安排一个 catch 和 finally 块。
  
  Q: then 块如何中断?
  
  A: then 块默认会向下顺序执行,return 是不能中断的,可以通过 throw 来跳转至 catch 实现中断。
  
  Q: 什么时候适合用 Promise 而不是传统回调函数?
  
  A: 当需要多次顺序执行异步操作的时候,例如,如果想通过异步方法先后检测用户名和密码,需要先异步检测用户名,然后再异步检测密码的情况下就很适合 Promise。
  
  Q: Promise 是一种将异步转换为同步的方法吗?
  
  A: 完全不是。Promise 只不过是一种更良好的编程风格。
  
  Q: 什么时候我们需要再写一个 then 而不是在当前的 then 接着编程?
  
  A: 当你又需要调用一个异步任务的时候。

推荐阅读