Promise/A+规范
- 一个** Promise **可能有三种状态:等待(pending)、已完成(fulfilled)、已拒绝(rejected)
- 一个** Promise **的状态只可能从“等待”转到“完成”态或者“拒绝态”,不能逆向转换,同时“完成”态和“拒绝态”不能相互转换
- ** Promise **必须实现then方法(可以说,then就是promise的核心),而且then必须返回一个promise,同一个promise的太then可以调用多次,并且回调的执行顺序跟它们被定义时的顺序一致
- ** then **方法接受两个参数,第一个参数是成功时的回调,在Promise由“等待”态转换到“完成”态时调用,另一个是失败时的回调,在promise由“等待”态转换到“拒绝”态时调用。同时,then可以接受另一个promise传入,也接受一个“类then”的对象或方法,即thenable对象。
Promise的基本用法
- Promise 对象是一个构造函数,用来生成promise实例
- Promise.prototype.then()
promise实例具有then方法,也就是说,** then **方法是定义在原型对象的Promise.prototype上的。它的作用是为Promise实例添加改变时的回调函数 - Promise.resolve()
有时需要将现有对象转为Promise对象,** promise.resolve ** 方法就起到这个作用