promise是什么?用在什么地方?

promise是ES6的一个类,promise是用来解决异步程序的,在promise出现之前用来解决异步程序的只有回调函数,但是如果下一次程序的值还要依赖上一次异步程序的值/下一个程序还是异步,回调函数里面又要嵌套回调函数,这样一层层嵌套就形成了回调地狱,对程序开发很不好,所以就出现promise;promise一共有三种状态,pedding.fulfill.reject,三种状态,异步程序请求成功状态改变为fuifill,请求失败状态改变为reject,状态的改变是不可逆的,只有状态改变后函数才能调用;

promise类的匿名函数里面有两个形参,一个形参是异步程序执行成功调用的函数,第二个形参是异步程序执行失败调用的函数,将异步程序写到promise匿名函数里面;

.then有两个回调函数,第一个是成功的函数体,第二个是失败的,第二个函数有时会省略,这时候就会执行catch;reject()相当于抛出一个错误,这个错误要用.then第二个参数/.catch去捕获;(promise类只会调用.then这个函数,如果抛出错误后promise不管,留给下一个promise对象,也就是.then调用后返回的promise对象,会再去调用.then/.catch,并且.then会把返回值作为下一次.then/.catch的参数并且根据状态自动调用对应的函数;这其实利用的就是promise的链式结构;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值