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

免费建单页网站如何选择百度网站优化公司

免费建单页网站,如何选择百度网站优化公司,网站侵权 做网站有责任吗,铜川网站设计概述 Promise.all() 和 Promise.race() 都是 JavaScript 中处理多个异步操作的 Promise 方法,但它们的行为和返回结果有所不同。 Promise.all()和Promise.race() 1. Promise.all() Promise.all() 接受一个由多个 Promise 实例组成的可迭代对象(例如数…

概述

Promise.all()Promise.race() 都是 JavaScript 中处理多个异步操作的 Promise 方法,但它们的行为和返回结果有所不同。

Promise.all()和Promise.race()

1. Promise.all()

Promise.all() 接受一个由多个 Promise 实例组成的可迭代对象(例如数组),并返回一个新的 Promise。当所有传入的 Promise 都成功解决时,Promise.all() 返回一个新的 Promise,该 Promise 的结果是所有输入 Promise 的结果组成的数组;如果任何一个输入的 Promise 被拒绝(即 reject),Promise.all() 会立即返回一个拒绝的 Promise,并且拒绝的原因是第一个被拒绝的 Promise 的原因。

[特点]
  • 必须等待所有 Promise 都成功,或者其中一个 Promise 被拒绝,才会返回结果。
  • 如果其中一个 Promise 被拒绝,Promise.all() 会立即返回拒绝的原因,不会继续等待其他 Promise。

示例:

const promise1 = Promise.resolve(3);
const promise2 = new Promise((resolve, reject) => setTimeout(resolve, 100, 'foo'));
const promise3 = Promise.resolve(42);Promise.all([promise1, promise2, promise3]).then((values) => {console.log(values); // [3, "foo", 42]}).catch((error) => {console.log(error); // 如果有一个Promise被拒绝,会进入catch});

如果其中一个 Promise 被拒绝:

const promise1 = Promise.resolve(3);
const promise2 = Promise.reject("Error!");Promise.all([promise1, promise2]).then((values) => {console.log(values);}).catch((error) => {console.log(error); // "Error!"});

2. Promise.race()

Promise.race() 也是接受一个包含多个 Promise 的可迭代对象,并返回一个新的 Promise。不同的是,Promise.race() 只会返回第一个解决或第一个被拒绝的 Promise 的结果。不管其他 Promise 是否已经解决或拒绝,Promise.race() 只关注第一个完成的 Promise。

[特点]
  • 返回的是第一个解决(resolve)或第一个拒绝(reject)的 Promise 的结果。
  • 无论其他 Promise 是否解决或拒绝,Promise.race() 都会立即返回第一个完成的结果。

示例:

const promise1 = new Promise((resolve, reject) => setTimeout(resolve, 500, 'foo'));
const promise2 = new Promise((resolve, reject) => setTimeout(resolve, 100, 'bar'));Promise.race([promise1, promise2]).then((value) => {console.log(value); // "bar" (因为 promise2 先完成)}).catch((error) => {console.log(error);});

如果第一个拒绝的 Promise 被触发:

const promise1 = new Promise((resolve, reject) => setTimeout(resolve, 500, 'foo'));
const promise2 = new Promise((resolve, reject) => setTimeout(reject, 100, 'error'));Promise.race([promise1, promise2]).then((value) => {console.log(value);}).catch((error) => {console.log(error); // "error" (因为 promise2 先拒绝)});

区别总结:

特性Promise.all()Promise.race()
返回值当所有 Promise 成功时返回一个数组,包含所有 Promise 的结果。如果有任何一个 Promise 被拒绝,立即返回拒绝的原因。返回第一个解决或拒绝的 Promise 的结果,忽略其他 Promise 的状态。
成功时的返回所有 Promise 的结果组成一个数组。第一个完成的 Promise 的结果。
失败时的返回如果任何一个 Promise 被拒绝,返回拒绝的原因。第一个被拒绝的 Promise 的拒绝原因。
适用场景需要所有 Promise 完成后才能继续处理。只关心第一个完成的 Promise,不关心其余 Promise。

应用场景

  • Promise.all() 适用于当多个异步任务必须都成功完成后才能继续处理后续操作的情况。例如,加载多个资源(如图片、脚本文件等)并在所有资源加载完成后再显示页面。

  • Promise.race() 适用于当多个异步任务中只关心哪个任务最先完成的情况。例如,网络请求超时处理,或者多个可能的 API 请求,哪一个先返回就用哪个结果。

http://www.hyszgw.com/news/60808.html

相关文章:

  • 不停弹窗的网站怎么做天门市城市建设管理局网站
  • 瓯北网站制作系统旅游网站设计的意义
  • 怎样python做网站wordpress新手入门
  • 礼服外贸网站长春省妇幼网站做四维
  • 多余菜单删掉wordpress无锡网站搜索引擎优化
  • 青浦门户网站网上培训机构
  • 网站后台logo临安做网站
  • 网站建设比较保险代理公司
  • 做网站平台多少钱互联网 创新创业项目
  • dede网站根目录标签网络营销的功能
  • 黑龙江营商监督建设局网站编辑网站用什么软件
  • 郑州建站模板源码制作壁纸的软件
  • 游戏网站建设一条龙app开发公司天品互联
  • 镇江市住房与城乡建设局网站网站备案认领
  • 东营网站建设tt0546企业建设网站的帮助
  • 凡客建站官网登录重庆双福建设开发有限公司网站
  • 网站建设佰首选金手指二八做网站服务器e3
  • 网站广告推广价格Wordpress网站能做seo吗
  • 网站建设推推蛙济南移动网站制作
  • 用二级域名做的网站算新站吗微商城科技
  • 公司网站域名做邮箱jsp网站购物车怎么做
  • 怎么做公司网站的二维码企业网站推广技巧
  • ip开源网站fpga可以做点什么用安康学院费用
  • 如何注册自媒体平台昆明百度关键词优化
  • 建站制作企业网站建设中的端口
  • 南昌做公司网站站长工具ip地址查询域名
  • 百度做网站的特点服务商是干什么的
  • 弹簧东莞网站建设网站设计网站项目流程
  • 要搭建网站个人工作室网站
  • 石家庄定制网站建设公司东营会计信息网官网首页