当前位置: 首页 > news >正文

promise静态方法及相关练习

promise的静态方法相对简单,这篇文章做个总结,以便漏补缺
总结如下:
1. Promise.all/Promise.anyPromise.allSettled/Promise.race都是接受数组,数组里面是promise
2.. Promise.all 接收的promise数组只要有一个失败那么整个就是失败进入cantch错误状态,可以打印错误信息
3.Promise.any可以看成all的反义方法,它会打印最先成功的promise,如果全部失败,则会进入catch可以打印失败原因
4.Promise.race : race顾名思义,打印最先完成的promise,不论成功还是失败
5.Promise.allSettled 不论成功和失败,他都会打印,相对来说这个方法,在实际开发中反而挺有用的(因为我们可以做筛选之类的)

方法名

含义

Promise.resolve(data)

直接返回一个完成状态的任务

Promise.reject(reason)

直接返回一个拒绝状态的任务

Promise.all(任务数组)

返回一个任务

任务数组全部成功则成功

任何一个失败则失败

Promise.any(任务数组)

返回一个任务

任务数组任一成功则成功

任务全部失败则失败

Promise.allSettled(任务数组)

返回一个任务

任务数组全部已决则成功

该任务不会失败

Promise.race(任务数组)

返回一个任务

任务数组任一已决则已决,状态和其一致


/*** 根据页码获取学生数据,返回Promise* @param {Number} page 页码*/
function fetchStudents(page) {return new Promise((resolve, reject) => {setTimeout(() => {if (Math.random() < 0.3) {reject(new Error(`网络错误!获取第${page}页数据失败!`));return;}// 模拟学生数据const stus = new Array(10).fill(null).map((d, i) => ({id: `NO.${(page - 1) * 10 + i + 1}`,name: `姓名${(page - 1) * 10 + i + 1}`,}));resolve(stus);}, Math.floor(Math.random() * 5000));});
}// 利用 fetchStudents 函数,完成下面的练习// 获取1-10页的学生,最终按照页码的顺序合并成一个数组,任何一页的数据获取出现错误,则任务不再继续,打印错误消息const proms = new Array(10).fill(1).map((it, i) => fetchStudents(i + 1));// Promise.all(proms)
//   .then((result) => {
//     console.log(result.flat());
//   })
//   .catch((err) => {
//     console.log(err);
//   });// 获取1-10页的学生,最终按照页码的顺序合并成一个数组,如果某些页码的数据获取失败,就不加入该数据即可
// Promise.allSettled(proms).then((result) => {
//   result = result
//     .filter((r) => r.status === 'fulfilled')
//     .map((it) => it.value)
//     .flat();
//   console.log(result);
// });// 获取1-10页的学生,打印最先获取到的数据,如果全部都获取失败,则打印所有的错误消息
// Promise.any(proms)
//   .then((result) => {
//     console.log(result);
//   })
//   .catch((err) => {
//     console.log(err.errors);
//   });// 获取1-10页的学生,输出最先得到的结果(有结果输出结果,有错误输出错误)
Promise.race(proms).then((result) => {console.log(result);},(err) => {console.log(err);}
);

相关文章:

promise静态方法及相关练习

promise的静态方法相对简单&#xff0c;这篇文章做个总结&#xff0c;以便漏补缺总结如下&#xff1a;1. Promise.all/Promise.anyPromise.allSettled/Promise.race都是接受数组&#xff0c;数组里面是promise2.. Promise.all 接收的promise数组只要有一个失败那么整个就是失败…...

【Tips】通过背数据了解业务

学习资料&#xff1a;做了三年数据分析&#xff0c;给你的几点建议 1. 通过背数据了解业务 原文&#xff1a; 总结&#xff1a; 方法&#xff1a;每天早上去到公司第一件事情就是先背一遍最新的各种指标。原理&#xff1a; 数据敏感性就是建立在对数据的了解和熟悉上。业务的…...

设备太分散?如何一站式管理边缘 OS、K8s 和应用?

作者简介 张志龙&#xff0c;SUSE 大中华区资深解决方案架构师&#xff0c;CNCF 官方认证的 CKA&CKAD 工程师&#xff0c;深耕以 Kubernetes 为代表的云原生领域&#xff0c;具备丰富的架构设计、业务容器化改造和项目落地实践经验。 据 Gartner 预测&#xff0c;到 2025 年…...

CF1692D The Clock 题解

CF1692D The Clock 题解题目链接字面描述题面翻译题目描述输入输出题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示代码实现题目 链接 https://www.luogu.com.cn/problem/CF1692D 字面描述 题面翻译 题目描述 从一个24小时制的时间点开始&#xff0c;每隔 xx…...

IDEA 30 个好用天花板技巧,敲代码直接接爽到飞。

IDEA 作为Java开发工具的后起之秀&#xff0c;几乎以碾压之势把其他对手甩在了身后&#xff0c;主要原因还是归功于&#xff1a;好用&#xff1b;虽然有点重&#xff0c;但依旧瑕不掩瑜&#xff0c;内置了非常多的功能&#xff0c;大大提高了日常的开发效率&#xff0c;下面汇总…...

关于selenium的等待

目录 隐式等待 显式等待 注意事项 隐式等待 简单来说&#xff1a;在规定的时间范围内&#xff0c;轮询等待元素出现之后就立即结束。 如果在规定的时间范围内&#xff0c;元素仍然没有出现&#xff0c;则会抛出一个异常【NoSuchElementException】&#xff0c;脚本停止运行…...

结构建模设计——Solidworks软件之装配体操作基本总结三(高级配合、机械配合、快捷菜单功能)

【系列专栏】&#xff1a;博主结合工作实践输出的&#xff0c;解决实际问题的专栏&#xff0c;朋友们看过来&#xff01; 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…...

【在 Colab 中使用 TensorBoard 绘图】

【在 Colab 中使用 TensorBoard 绘图】进入 Google Drive进入 Colab在深度学习中&#xff0c;使用本机GPU跑可能会比较慢&#xff0c;这里使用 Google Drive Colab 进行训练&#xff0c;运行代码 进入 Google Drive 进入网盘 初次进入需要注册账号。注意科学上网即可。右键…...

React循环DOM时为什么需要添加key

一、React 渲染流程和更新流程 react渲染流程&#xff1a;jsx -> 虚拟dom -> 真实domreact更新流程&#xff1a;props/state改变 -> render函数重新执行 -> 生成新的虚拟dom树 -> 新旧虚拟dom树进行diff -> 计算出差异进行更新 ->更新到真实的dom树 所以…...

Elasticsearch架构篇 - terms aggregation

terms aggregation 即词项分桶聚合。它是 Elasticsearch 最常用的聚合&#xff0c;类同于关系型数据库依据关键字段做 group。 size&#xff1a;返回的词项分桶数量&#xff0c;默认 10。阈值 65535。默认情况下&#xff0c;协调节点向每个分片请求 top size 数量的词项桶&…...

MySQL 的体系结构、引擎与索引

MySQL的引擎与体系结构 体系结构 连接层 最上层是一些客户端和链接服务&#xff0c;主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限 服务层 第二层架构主要完成大多数的核心服务功能&#xff0c;如SQL…...

数字IC设计需要学什么?

看到不少同学在网上提问数字IC设计如何入门&#xff0c;在学习过程中面临着各种各样的问题&#xff0c;比如书本知识艰涩难懂&#xff0c;有知识问题难解决&#xff0c;网络资源少&#xff0c;质量参差不齐。那么数字IC设计到底需要学什么呢&#xff1f; 首先来看看数字IC设计…...

五分钟搞懂POM设计模式

今天&#xff0c;我们来聊聊Web UI自动化测试中的POM设计模式。 为什么要用POM设计模式 前期&#xff0c;我们学会了使用PythonSelenium编写Web UI自动化测试线性脚本 线性脚本&#xff08;以快递100网站登录举栗&#xff09;&#xff1a; import timefrom selenium import …...

面试 | 递归乘法【细节决定成败】

不用[ * ]如何使两数相乘❓一、题目明细二、思路罗列 & 代码解析1、野蛮A * B【不符合题意】2、sizeof【可借鉴】解析3、简易递归【推荐】① 解析&#xff08;递归展开图&#xff09;② 时间复杂度分析4、移位<<运算【有挑战性&#x1f4aa;】① 思路顺理② 算法图解…...

【Linux】环境变量与进程优先级

文章目录&#x1f3aa; 进程优先级&#x1f680;1.孤儿进程&#x1f680;2.优先级查看&#x1f680;3.优先级修改&#x1f3aa; 环境变量&#x1f680;1.常见环境变量&#x1f680;2.环境变量获取&#x1f680;3.main中的命令行参数&#x1f3aa; 进程优先级 每个进程都有相应…...

RocketMQ5.0.0的Broker主从同步机制

目录 一、主从同步工作原理 1. 主从配置 2. 启动HA 二、主从同步实现机制 1. 从Broker发送连接事件 2. 主Broker接收连接事件 3. 从Broker反馈复制进度 4. ReadSocketService线程读取从Broker复制进度 5. WriteSocketService传输同步消息 6. GroupTransferService线程…...

深度学习论文: EdgeYOLO: An Edge-Real-Time Object Detector及其PyTorch实现

深度学习论文: EdgeYOLO: An Edge-Real-Time Object Detector及其PyTorch实现 EdgeYOLO: An Edge-Real-Time Object Detector PDF: https://arxiv.org/pdf/2302.07483.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: https://github.com/shangli…...

如何做好APP性能测试?

随着智能化生活的推进&#xff0c;我们生活中不可避免的要用到很多程序app。有的APP性能使用感很好&#xff0c;用户都愿意下载使用&#xff0c;而有的APP总是出现卡顿或网络延迟的情况&#xff0c;那必然就降低了用户的好感。所以APP性能测试对于软件开发方来说至关重要&#…...

Hive窗口函数

概述 窗口函数&#xff08;window functions&#xff09;也叫开窗函数、OLAP函数。 如果函数具有over子句&#xff0c;则它是窗口函数 窗口函数可以简单地解释为类似于聚合函数的计算函数&#xff0c;但是通过group by 子句组合的 常规聚合会隐藏正在聚合的各个…...

C++学习笔记(1):在默认构造函数内部使用带参数的构造函数

题目以下代码的输出是不是0&#xff1a;#include <unordered_map> #include <iostream>using namespace std;struct CLS{int i;CLS(int i_) :i(i_){}CLS(){CLS(0);} };int main(){CLS obj;std::cout << obj.i << endl;return 0; }结果-858993460为什么…...

D3KeyHelper:暗黑3玩家的智能按键助手,告别重复操作疲劳

D3KeyHelper&#xff1a;暗黑3玩家的智能按键助手&#xff0c;告别重复操作疲劳 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否曾在《暗黑破坏…...

Airtest Poco实战:5分钟搞定微信小程序自动化测试环境搭建与元素抓取

Airtest Poco实战&#xff1a;5分钟搞定微信小程序自动化测试环境搭建与元素抓取微信小程序作为轻量级应用的代表&#xff0c;已经渗透到电商、社交、工具等各个领域。随着小程序功能的日益复杂&#xff0c;自动化测试成为保障产品质量的重要手段。本文将带你快速搭建微信小程序…...

Burp Suite拦截与替换机制深度解析:从协议层到规则链

1. 这不是“点开就能用”的功能&#xff0c;而是你和目标系统之间的一道可编程闸门很多人第一次在Burp Suite里点开Proxy → Intercept&#xff0c;看到HTTP请求被拦下来&#xff0c;兴奋地改个User-Agent、删个Cookie就点Forward&#xff0c;以为自己已经掌握了“拦截与替换”…...

Taotoken如何帮助教育科技产品实现个性化学习辅导

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken如何帮助教育科技产品实现个性化学习辅导 1. 场景与挑战 教育科技公司在开发个性化学习助手时&#xff0c;常常面临一个核…...

Unity渲染排序三要素:SortingLayer、Order in Layer与RenderQueue协同原理

1. 为什么刚进Unity的美术和程序总在“图层遮挡”上反复拉扯&#xff1f;“这个UI怎么被背景挡住了&#xff1f;”“粒子特效一开就穿模&#xff0c;明明Z轴没问题&#xff01;”“我调了Order in Layer到999&#xff0c;还是被另一个Sprite挡住——它连Sorting Layer都没改过&…...

差分隐私GDP机制紧密度量化:从隐私剖面到∆度量的实践指南

1. 差分隐私GDP机制&#xff1a;从理论到实践&#xff0c;如何量化隐私保护紧密度在差分隐私&#xff08;Differential Privacy, DP&#xff09;的实际部署中&#xff0c;尤其是在机器学习的隐私保护训练&#xff08;如DP-SGD&#xff09;场景里&#xff0c;我们常常面临一个核…...

GIS工程应用记录(AI辅助编程)

问题的问题&#xff1a;语境坍缩“从各个角度提出问题&#xff0c;AI做出对应积极答复和修改&#xff0c;结果没有什么变化。”这&#xff0c;就是元问题最核心的症状。你尝试了所有你已知的“高级”协作手段&#xff0c;但就像重拳打在棉花上&#xff0c;AI永远在积极回应&…...

基于STM32WL与LoRaWAN的远程空气质量监测系统全栈开发实践

1. 项目概述&#xff1a;构建一个远程空气质量监测系统最近在做一个挺有意思的玩意儿&#xff1a;一个能自己找地方待着、靠太阳能供电&#xff0c;然后把周围空气数据悄无声息传回来的远程监测终端。核心想法很简单&#xff0c;就是想知道某个犄角旮旯&#xff0c;比如工厂周边…...

终极指南:三步搞定Windows系统安卓APK文件安装,告别模拟器时代

终极指南&#xff1a;三步搞定Windows系统安卓APK文件安装&#xff0c;告别模拟器时代 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为电脑无法直接运行手机应用…...

结肠“瑞士卷”制片法

在肠道病理研究中&#xff0c;如何完整保留小鼠结肠的全层结构、同时避免人为损伤&#xff0c;一直是实验操作的难点。本文分享一套改良版“瑞士卷”制片技术&#xff0c;无需剖开肠管、无需机械顶压&#xff0c;即可获得高质量的全结肠切片&#xff0c;特别适合炎症、隐窝异常…...