你怎样理解ES6中Promise的?使用场景?
一. 介绍
Promise是构造函数,它可以生成具有特定状态的实例,这些状态包括pending(等待),fulfilled(成功),和rejected(失败),这种状态管理机制,使得异步操作的结果变得可预测和可控,是一种解决地狱式回调的解决方案。
Promise对象的状态不受外界影响,状态只能改变一次,不可逆。
用法:
Promise 构造函数传入一个函数作为参数,该函数有两个参数,分别 为resolve和reject
resolve函数作用将pending状态改为fulfilled(成功)
reject 函数作用将pending状态改为rejected(失败)
Promise原型上的方法:
成功的结果是.then()
失败结果是.catch()。
成功或失败都会执行.finally()
then ()方法就是把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数。而 Promise 的优势就在于这个链式调用。我们可以在 then 方法中继续写 Promise 对象并返回,然后继续调用 then 来进行回调操作。
Promise构造函数存在以下方法:
Promise.all()方法接收数组为参数,每一项都是一个Promise实例,当所有的传入的状态都为成功时,才会返回成功,如果一个失败那么返回的状态也是失败的。
Promise.race()同样传入数组,只要有一个传入Promise实例状态改变,那就返回这个状态。
Prominse.allSettled()传入Promise实例都更新状态才会结束。