promise 浅析
一般用于封装异步业务逻辑的场景 比如 ajax 请求等
1. 依照 Promise/A+ 的定义, Promise 有四种状态:
1.1 pending: 初始状态, ⾮ fulfilled 或 rejected.
1.2 fulfilled: 成功的操作.
1.3 rejected: 失败的操作.
1.4 settled: Promise 已被 fulfilled 或 rejected ,且不是 pending
1.2 另外, fulfilled 与 rejected ⼀起合称 settled
1.3 Promise 对象⽤来进⾏延迟( deferred ) 和异步( asynchronous ) 计算
Promise 的构造函数
1. 构造⼀个 Promise ,最基本的⽤法如下:
var promise = new Promise(function(resolve, reject) {
if (...) {
resolve(result);
} else {
reject(Error(errMessage));
}
});
2. Promise 实例拥有 then ⽅法(具有 then ⽅法的对象,通常被称为 thenable )。
它的使⽤⽅法如下:
promise.then(onFulfilled, onRejected)
3. 接收两个函数作为参数,⼀个在 fulfilled 的时候被调⽤,⼀个在 rejected 的时候被 、调⽤,
接收参数就是 future , onFulfilled 对应 resolve , onRejected 对应reject