Promise:从了解到掌握

本文详细介绍了Promise的概念及其实现原理,包括其三种状态:pending、resolved和rejected,并解释了resolve和reject的作用,以及then方法如何用于接收状态改变时的回调函数。

什么是Promise?相信大家已经看到不少有关类似的文章,话不多说,直接上干货。


在这里简单的介绍下Promise,Promise有三种状态:

pending:进行中,表示还没有得到想到的结果。

resolved或Fulfilled:已经完成,表示得到了我们想要的异步操作结果。

rejectd:也是已经完成,但是得到的不是我们想要的异步操作结果。

这里要注意下,这三种状态都不受外界的影响,一旦状态改变,就不会在改变,而且状态只能从pending变为从resolved或者状态从pending变为rejected两种情况,这也和Promise英语含义相符合“承诺”


resolve()和reject()他们的作用将状态改变为resolved和rejected;

Promsie对象中的then方法,用于接收状态改变时的回调函数,then方法有2个参数,第一个回调接收resolved状态的执行,第二个回调用于接收rejected状态的执行(第二个可选,等同于)


catch方法等等价then(null,callback),用于接收rejected状态的执行。

then方法和catch方法返回的都是一个Promise对象,因此我们可以用链式调用,这也是我们回调地狱的一个解决方法。

为什么要用Promise?

如果,我们需要做一个ajax请求,这个ajax请求的其中一个参数,是上一个ajax请求中获取,

现在看起来并没有什么问题,倘若出现更多个ajax的时候就会出现代码臃肿,就是我们上面所说的回调地狱,Promise能够解决这个问题。


封装了一个get请求的方法,对于ajax请求可以改写成链式调用,这就解决了回调地狱的问题


这段时间看了大量的东西,加长时间没写有点生疏,后续还会继续更新Generator,async/await


参考:知乎  ES6-阮一峰


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值