Promise.race()方法
Promise.race()方法
Promise.race方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。
const p = Promise.race([p1, p2, p3]);
上面代码中,只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的 Promise 实例的返回值,就传递给p的回调函数。
Promise.race方法的参数与Promise.all方法一样,如果不是 Promise 实例,就会先调用下面讲到的Promise.resolve方法,将参数转为 Promise 实例,再进一步处理。
下面是一个例子,如果指定时间内没有获得结果,就将 Promise 的状态变为reject,否则变为resolve。
const p = Promise.race([fetch('/resource-that-may-take-a-while'),new Promise(function (resolve, reject) {setTimeout(() => reject(new Error('request timeout')), 5000)})
]);
p.then(response => console.log(response));
p.catch(error => console.log(error));
上面代码中,如果 5 秒之内fetch方法无法返回结果,变量p的状态就会变为rejected,从而触发catch方法指定的回调函数。
Promise.race()方法相关推荐
- es6 Promise.race()方法
Promise.race()方法 Promise.race方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例. const p = Promise.race([p1, p2, ...
- 【JS】Promise.race()方法例子流程详解
在理清Promise.all()中每个流程的时候实在是头大,理了半天,做此记录以便回顾 promise部分源码如下,只摘取用到的部分 function Promise(excutor) {const ...
- Promise:Promise.all、Promise.race、Promise.any的用法及区别
在项目开发过程中经常需要通过异步编程来实现功能,此时就需要我们了解Promise. Promise Promise 是异步编程的一种解决方案,比传统的解决方案回调函数和事件更合理和更强大. 有了Pro ...
- Promise.all、Promise.allSettled、Promise.any、Promise.race
Promise的实例方法拓展 Promise.all() :方法用于将多个 Promise 实例,包装成一个新的 Promise 实例. Promise.allSettled():用来确定一组异步操作 ...
- Promise.all、Promise.race、Promise.allSettled、Promise.any区别
目录 1.Promise.all 2.Promise.race 3.Promise.allSettled 4.Promise.any 1.Promise.all Promise.all()方法用于将多 ...
- vue 手写签名_手写Promise/Promise.all/Promise.race(手写系列一)
背景 几个月没写文章了,愧对关注本专栏的小伙伴.最近有同学提议我出一个手写系列的文章对常见对前端工具.框架.设计模式做一个覆盖.同时有个要求:代码要尽量短小易懂,并且体现原理,让学习者学习过后能在未来 ...
- promise中的all和race方法
promise中的all方法和race方法 这两个方法,都是并行执行多个异步操作.而不同的是,all方式遵循"谁跑得慢,以谁为准执行回调",而race遵循的是"谁跑的快, ...
- Promise和Promise的方法
(Promise和Promise的方法) Promise是ES6一个伟大的发明,他使我们从回调地狱中能够走出来. 什么是Promise 从字面上来看,Promise就是一个承诺.那么,在ES6当中,P ...
- js实现promise.all promise.race promise.resolve
最近在准备面试,关于 promise 是面试的热点和考点.不定面试官心情好了就会让你写个 promise 的 api 废话不多说,下面是我写的代码,如有不严谨之处希望指出. promise.all 当 ...
最新文章
- jenkins自动化部署工具
- Chemistry.AI | 基于卷积神经网络(CNN)预测分子特性
- 【2012百度之星/资格赛】H:用户请求中的品牌
- Android调用系统拍照裁剪和选图功能
- matlab保存格式可以用cad打开文件,怎么将TXT文件导入CAD中生成图形
- 作者:郑纬民,男,清华大学教授、博士生导师,中国计算机学会理事长。
- Linux系统编程20:基础IO之从内核代码深刻理解Linux是如何管理文件及文件描述符的本质是什么
- Cascade R-CNN升级!目标检测制霸COCO,实例分割超越Mask R-CNN
- python程序设计和c语言_C 语言和 Python,该从哪个入门编程?
- clang命令编译c++程序时报错
- 2015 CCPC 这次,我为自己鼓掌
- python中raise stoplteration_Python 中的异常处理
- 网络安全基础知识笔记
- 中段尾段全段什么意思_排气管中段 尾段 全段 和芭蕉 是什么意思
- Audio-driven Talking Face Video Generation with Learning-based Personalized Head Pose (译文)
- 计算机桌面变窄,电脑桌面图标变小怎么调整
- 《C++ Concurrency in Action》笔记
- matlab显示变化的数字,如何在MATLAB中一起显示字符串和数字?
- AWS认证是什么意思?怎么报考?
- 使用Android Studio将开源库发布到Jcenter中央库