前端关于Promise的理解 您所在的位置:网站首页 前端中promise 前端关于Promise的理解

前端关于Promise的理解

2023-08-09 03:20| 来源: 网络整理| 查看: 265

一:Promise是什么?

Promise是解决回调地域的异步解决方案。

注:Promise是最早由社区提出和实现的一种解决异步编程的方案,比其他传统的解决方案(回调函数和事件)更合理和更强大。ES6将其写进了语言标准,统一了用法,原生提供了Promise对象。ES6规定,Promise对象是一个构造函数,用来生成Promise实例。

注:什么是回调地域?回调地域是函数中嵌套函数的情况被称为回调地域。回调地域是实现代码循序执行而出现的一种操作,它会造成我们的代码可读性非常差,后期不好维护。

二、Promise的两个特点

1:Promise有三种状态:pending(进行中)、fulfilled(已成功)、rejected(已失败)。

2:Promise的状态一旦改变,就不会再变,任何时候都可以得到这个结果,状态不可逆,只能由pending变成fulfilled或者由pending变成jejected。

三:Promise的方法

Promise实例方法:

1:then()得到异步任务的正确结果

2:catch()获取异常信息、

3:finally()成功与否都会执行

promise对象方法:

1:Promise.all()并发处理多个异步任务,所有任务都执行完成才能得到结果(同时请求多个接口)

2:Promise.race()并发处理多个异步任务,只要有一个任务完成就能得到结果

3:Promise.resolve()返回一个Promise对象,该对象被解析为给定的值

4:Promise.reject()返回一个Promise对象,该对象被解析为给定的错误

5:Promise.any()与Promise.all()相反,Promise.any()接收一个Promise可迭代对象,只要其中的一个Promise成功,就返回那个已经成功的 promise。

四、Promise的三个缺点

1:无法取消Promise,一旦新建它就会立即执行,无法中途取消 2:如果不设置回调函数,Promise内部抛出的错误,不会反映到外部 3:当处于pending状态时,无法得知目前进展到哪一个阶段,是刚刚开始还是即将完成

五:Promise在哪存放成功回调序列和失败回调序列?

1:onResolvedCallbacks 成功后要执行的回调序列 是一个数组

2:onRejectedCallbacks 失败后要执行的回调序列 是一个数组

以上两个数组存放在Promise 创建实例时给Promise这个类传的函数中,默认都是空数组。 每次实例then的时候 传入 onFulfilled 成功回调 onRejected 失败回调,如果此时的状态是pending 则将onFulfilled和onRejected push到对应的成功回调序列数组和失败回调序列数组中,如果此时的状态是fulfilled 则onFulfilled立即执行,如果此时的状态是rejected则onRejected立即执行

上述序列中的回调函数执行的时候,是有顺序的,即按照顺序依次执行



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有