Promise
Promise 是 NodeJS 社区中诞生的产物
Promise 是一个对象,用来传递异步操作的消息。它表示某个未来才会知道结果的事件(通常是异步操作)

- 新建 Promise 对象时传入两个参数 resolve 和 reject
- Promise 提供 then 方法加载回调函数
- catch 方法捕获执行过程中抛出的错误
var p = new Promise((resolve, reject) => {
  window.setTimeout(() => {
    resolve(123);
  }, 1000);
});
p.then((data) => {
  console.log("p success", data);
});
//=> p success 123
Promise 算是一种控制反转
- 原来需要给异步函数传入一个回调函数
- 现在变成异步函数返回一个 Promise 对象
Promise 就是实现这种反转的工具
缺点:回调链冗长
相关 API
Promise 构造函数
Promise (excutor) {} excutor 会在 Promise 内部立即同步回调,异步操作在执行器中执行
- excutor 函数:执行器(resovel,reject) => {}
- resolve 函数:成功时调用的函数 value => {}
- reject 函数:失败时调用的函数 reason => {}
Promise.prototype.then 方法
(onResolved,onRejected) => {} 成功或者失败的回调,返回一个新 Promis 对象
- onResolved 函数:成功回调函数(value) => {}
- onRejected 函数:失败的回调函数 reason => {}
Promise.prototype.catch 方法
(onRejected) => {} 失败的回调函数
- 语法糖,相当于then(undefined,onRejected)
Promise.resolve 方法
(value) => {} 返回一个成功/失败的 promise 对象
Promise.reject 方法
(reason) => {} 返回一个失败的 promise 对象
Promise.all 方法
(promises) => {} promises:包含 n 个 promise 的数组,返回一个新的 promise, 只有所有的 promise 都成功才成功, 只要有一个失败了就直接失败
Promise.race 方法
(promises) => {} promises:包含 n 个 promise 的数组,第一个完成的 promise 的结果状态就是最终的结果状态
.
- 
    抛出异常 - 则状态变为 rejeted
 
- 
    中断 Promise 链 - 
        在回调中返回一个 Pendding 状态的 Primise 
 
- 
        
参见