必考:Promise、Promise.all、Promise.race 分别怎么用?

2020年3月11日
《每日一题系列🚀》
作者:王二狗
博客:掘金思否知乎简书CSDN
点赞再看,养成习惯,每日一题系列会一直更新下去,你们的支持是我持续分享的最大动力😘

Promise

Promise 是异步编程的一种解决方案,比传统的解决方案回调函数和事件更合理和更强大。

有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。

一个Promise的当前状态必须为以下三种状态中的一种:等待态(Pending)、执行态(Fulfilled)和拒绝态(Rejected),状态的改变只能是单向的,且变化后不可在改变。

一个Promise必须提供一个 then 方法以访问其当前值、终值和据因。

promise.then(onFulfilled, onRejected)回调函数只能执行一次,且返回 promise 对象

Promise的每个操作返回的都是Promise对象,可支持链式调用。

通过 then 方法执行回调函数,Promise的回调函数是放在事件循环中的微队列。

Promise的具体用法如下(背代码):

 function fn(){
     return new Promise((resolve, reject)=>{
         成功时调用 resolve(数据)
         失败时调用 reject(错误)
     })
 }
 fn().then(success1, fail1).then(success2, fail2)

Promise.all

Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。

Promise.all([promise1, promise2]).then(success1, fail1)

promise1promise2都成功才会调用success1

Promise.race

Promise.race()方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。

 Promise.race([promise1, promise2]).then(success1, fail1)

promise1promise2只要有一个成功就会调用success1

告诫自己,即使再累也不要忘记学习,成功没有捷径可走,只有一步接着一步走下去。 共勉!

文章中如有不对的地方,欢迎小伙伴们多多指正。

谢谢大家~ 💘

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址https://fancierpj0.github.io/iPromise/ 目录 (づ ̄ 3 ̄)づ=> ...
    Cirs_冷峥子阅读 1,390评论 3 6
  • Promise 中文释义:许诺,允诺;希望。意指我答应你我会去做的,不管成功还是失败我肯定会做的。 1、基础介绍 ...
    Light413阅读 2,398评论 0 0
  • 1.promise简介 1.1 Promise本意是承诺,在程序中的意思就是承诺我过一段时间后会给你一个结果...
    常青_1f93阅读 864评论 0 1
  • 弄懂js异步 讲异步之前,我们必须掌握一个基础知识-event-loop。 我们知道JavaScript的一大特点...
    DCbryant阅读 2,750评论 0 5
  • 很多时候我们会被教育被说教,你要站在别人的立场想,却极少讲你要站在自己的立场上。好像我们天生会站在自己的立场想,好...
    九尾喵丿阅读 920评论 30 10