千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

promise的使用
promise是为了解决回调地狱问题
promise是一个构造函数,只要按照使用方法去封装异步操作,最终promise对象就会知道里面异步操作的状态。
promise的使用:new一个promise对象,这个对象有给一个参数,这个参数是一个回调函数,这个回调函数又有两个形参,
一个叫resolve,一个叫reject。
我们在这个回调函数内部写异步操作,
并且在异步操作成功以后调用resolve(),
异步操作失败以后调用reject(),
成功以后会执行p.then(function(){}),
失败以后就会执行p.catch(function(){})。
promise本质是状态机,有个属性,记录内部操作的状态:
1.创建promise以后就是pending状态进行中。2.异步操作成功以后调用resolve,fulfilled成功状态。
3.异步操作失败以后调用reject状态。注意:状态是不可逆的。
promise的其他实例方法:all,全部p和p2是同时执行的,都成功以后p0才成功,有一个失败p0就失败。race(竞赛),p和p2是同时执行的,返回了p0,也是promise对象,p0的状态跟最快成功的p一样的。