// race的原理
Promise.race = function(values){return new Promise((resolve,reject)=>{for(let i = 0 ; i< values.length;i++){let current = values[i]; if((typeof current === 'object' &&  current !==null)|| typeof current == 'function'){let then = current.then;if(typeof then == 'function'){ // 比较哪个promise比较快,谁快用快then.call(current,resolve,reject)}else{resolve(current);}}else{resolve(current);}}});
}

  

转载于:https://www.cnblogs.com/guangzhou11/p/11322657.html

Promise.race 的原理相关推荐

  1. promise的优点promise.all(),promise.race(),promise.allSettled()的原理

    Promise也是使用回调函数,只不过是把回调封装在了内部,使用上一直通过 then 方法的链式调用,使得多层的回调嵌套看起来变成了同一层的,书写上以及理解上会更直观和简洁一些.Promise出现之前 ...

  2. JS Promise的实现原理

    转载自   JS Promise的实现原理 在前端开发过程中,会经常使用到 Promise 模式,可以使异步代码看起来如同步般清新易读,从而从回调地狱中解脱出来.ES6中 已原生支持 Promise, ...

  3. 理解和使用Promise.all和Promise.race

    一.Pomise.all的使用 Promise.all可以将多个Promise实例包装成一个新的Promise实例.同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回 ...

  4. vue 手写签名_手写Promise/Promise.all/Promise.race(手写系列一)

    背景 几个月没写文章了,愧对关注本专栏的小伙伴.最近有同学提议我出一个手写系列的文章对常见对前端工具.框架.设计模式做一个覆盖.同时有个要求:代码要尽量短小易懂,并且体现原理,让学习者学习过后能在未来 ...

  5. js实现promise.all promise.race promise.resolve

    最近在准备面试,关于 promise 是面试的热点和考点.不定面试官心情好了就会让你写个 promise 的 api 废话不多说,下面是我写的代码,如有不严谨之处希望指出. promise.all 当 ...

  6. promise then err_Promise 原理解析与实现(遵循Promise/A+规范)

    1什么是Promise? Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一 2对于几种常见异步编程方案 回调函数 事件监听 发布/订阅 ...

  7. Promise、Promise.all和Promise.race实现

    Pomise function myPromise(constructor) {let self = this;self.status = "pending" // 定义状态改变前 ...

  8. Promise:Promise.all、Promise.race、Promise.any的用法及区别

    在项目开发过程中经常需要通过异步编程来实现功能,此时就需要我们了解Promise. Promise Promise 是异步编程的一种解决方案,比传统的解决方案回调函数和事件更合理和更强大. 有了Pro ...

  9. es6 Promise.race()方法

    Promise.race()方法 Promise.race方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例. const p = Promise.race([p1, p2, ...

最新文章

  1. 一句话说清聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM
  2. python与php8-别再盲目学 Python 了!
  3. MyEclipse+Tomcat+MAVEN+Git项目完整环境搭建
  4. 用于部分迁移学习的加权对抗网络 | CVPR 2018论文解读
  5. SAP Spartacus 的 Banner Component 请求
  6. 第4关:HDFS-JAVA接口之删除文件
  7. mysql多字段分库分表基因码_一文学会常用 MySQL 分库分表方案
  8. 最全的软件开发报价标准
  9. Java 实现 pdf 和 Excel 的生成及数据动态插入、导出
  10. 记者调查:害死多条人命的校园贷卷土重来 支付机构金运通牵涉其中
  11. C语言有负号的除法以及求余运算规则
  12. 中国诗词大会第四季第一场
  13. CS模式,客户端页面加载
  14. Oracle如何保持一致读?
  15. tcp/ip网络编程--accept()函数返回的套接字
  16. 数字联接新动能 | 专访亿联IT总监赖志豪:AI是亿联未来数字化建设的方向
  17. 混合云风头正劲 青云QingCloud为何成为领导者?
  18. 响铃:连续三季翻番,在收入问题上腾讯云如何体现发展质量优势?
  19. falcon 关于mysql监控_open-falcon监控mysql详细配置
  20. 阿里云服务器安装宝塔

热门文章

  1. 进阶指令——wc指令【作用:统计文件内容信息(包含行数、单词数、字节数)】、date指令【作用:表示操作时间日期(读取、设置)】、cal指令【作用:用来操作日历的】、clear/ctrl + L指令
  2. Eclipse 代码提示功能设置
  3. dbvis 数据库工具:数据库驱动集合包获取,dbvis数据库工具安装驱动实例演示
  4. PyQt5 技巧篇-便于文字排版的等宽字体推荐:Source Code Pro的中文为英文两倍宽字体
  5. 数字信号处理第一章 离散时间信号与系统
  6. C++类里面的哪些成员函数是内联函数?
  7. java中insert函数
  8. 十进制中正整数N中1的个数(2)
  9. copyMakeBorder函数
  10. 证明连通简单图是哈密顿图