es6 Promise对象

promise 是什么??
所谓Promise就是一个容器,里面保存着某个未来才会结束的事件的结果
从语法上讲,promise是一个对象,可以获取异步操作的消息
promise对象的特点
一,对象的状态不受外界影响
promise对象的3种状态
1,pending(进行中)
2,fulfiled(已完成)
3,rejected(已失败)
二,状态一旦改变 就不会再发生变化,任何时候都是这种结果

Promise怎么用??
使用构造函数生成promise的实例,接受一个函数作为参数,这个函数的两个参数分别是resolve和reject
resolve和reject也是函数,由javascript引擎提供,不用自己部署
resolve函数的作用是,将promise对象的状态由pending变成resolved,在异步操作成功时调用,并将结果作为参数传递出去,在then()方法中可以
reject函数的作用是,将promise对象的状态由pending变成rejected,在异步操作失败时调用,并将错误信息作为参数传递出去
const pro=new Promise(function(resolve,reject){
});

promise实例生成之后,可以在then()方法中,分别指定resolved状态和rejected状态的回调函数
then()方法接受两个回调函数作为参数
第一个回调函数,是状态变为resolved时调用,
第二个回调函数,是状态变成rejected时调用,第二个回调函数是可选的
这两个回调函数都是接受promise对象传出的值作为参数

Promise.prototype.then()
Promise实例具有的then()方法,是定义在Promise.prototype这个原型对象上的
then()方法会返回一个新的promise实例,不同于原来的,因此可以使用链式调用的写法,
then方法后面再调用一个then方法
Promise.prototype.catch()
catch()方法可以处理,promise实例发生的错误和then方法产生的错误

Promise.all([p1,p2,p3])
all()方法可以接受多个promise实例作为参数,当全部实例状态变成resolved或者其中一个的状态变成rejected时,后面的回调函数才会被调用
Promise.resolve()
将一个对象转为Promise对象,直接返回一个resolved状态的Promise对象
Promise.reject()
也是讲一个对象转为Promise对象,该实例的状态为rejected

最后,两个实用的附加方法
1,done()
Promise.then().catch().done()
可以放在Promise回调链的尾链,对于then()方法和catch()方法产生的错误进行抛出
2,finally()
不管Promise对象的状态如何,最后都会执行的



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值