什么是Promise?Promise有什么好处

1、什么是Promise

promise是解决异步的方法,本质上是一个构造函数,可以用它实例化一个对象。对象身上有resolve、reject、all,原型上有then、catch方法。promise对象有三种状态:pending(进行中)、fulfilled(成功)、rejected(失败)

Promise对象有两个特点:

(1)对象的状态不受外界的影响。Promise对象代表一个异步操作,只有异步操作的结果可以决定Promise对象的状态,其他任何操作都不会改变这个状态。这个可以与Promise它的名字一起理解,Promise是“承诺”的意思,表示其他手段无法改变。

(2)状态一旦改变,便不会再次改变。而且它的状态改变只会由(pending->fulfilled、

pending->rejected)并且这两种情况只要发生其中一个,状态便固定了。

2、Promise的优点:

(1)支持链式调用(可以将异步操作以同步的方式显示出来)避免回调地狱

什么是回调地狱?

多个回调函数层层嵌套,外层回调函数异步返回的结果是内层回调函数执行的条件

回调地狱的缺点?

1、可读性、可维护性差

2、不便于异常处理

什么是回调函数?

回调函数简称为“回调”,可以理解为“回过头来调用的函数”。它是作为一个参数,传递给另一个函数,待那个函数执行完毕之后,再来执行这个传递进来的参数。

为什么要有回调函数?

因为你不知道子线程什么时候执行完毕,这个时候就需要有回调函数,待它执行完毕之后再来通知主线程。

(2)指定回调函数的方式更加灵活:先前我们必须在定义一个异步任务之前指定回调,现在可以在异步任务执行完毕之后再指定回调。

Promise的缺点?

1、无法取消它,一旦建立就会立即执行,没办法中途取消

2、如果不给它设置回调函数,内部的抛出错误没办法显示

3、当处于pending状态的时候,无法得知当前进展到哪一地步(是刚开始还是刚结束的状态)

(由于自己对Promise一直都没有特别懂,因此记录一下)

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值