常说的promise,给自己总结一下promise的方法

146 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

promise是什么promise的原理与async、await语法糖的介绍如果不知道可以看一下这篇文章,这篇文章主要是自己重新的一个复习和学习新的方法

我们用的最多的也是 async和await,加上promise.all,promise.race

promise的方法有哪些

  • promise.then():当promise的状态改变,会触发回调函数,有两个参数:第一个是成功回调函数,第二个是失败回调函数。他会返回一个全新的promise,因此可以继续then链式调用
  • promise.catch():状态变为rejected执行。相当于promise.prototytype.then(null/undifined,rejection)如果promise内发生了错误,但却没有定义catch(),这时运行到这一行代码会报错,但是不会影响到promise后面代码的执行
  • promise.finally():promise实例无论状态是什么都会执行的函数。类似通知你它做完了这件事
  • promise.all():将多个promise实例包装成一个新的promise实例,参数是promise数组,只有数组中的所有promise完成后才会由pendding状态变为resolve,执行then里面的回调函数,如若数组中有任意一个promise执行数百回调,catch方法会捕获到首个被执行的reject函数。该方法获得成功结果的数组和数据顺序接收到的promise数组顺序是一致的
  • promise.race(): 当promise数组中任意一个被拒绝或成功,则回采用第一个promise作为他的返回值,若成功执行then,失败执行catch
  • promise.any():传入的promise数组中有任意一个完成时就会终止,会忽略到所有被拒绝掉的promise,知道第一个promise完成。所有的promise都被拒绝,则回执行catch
  • promise.allSettled():当给定的promise数组中的所有promise被拒绝后会返回一个拒绝的promise数组,与promise数组对应