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

校园设计网站营销伎巧第一季

校园设计网站,营销伎巧第一季,哪个软件可以自动排名,wordpress评论数概述 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.fp688.cn/news/156776.html

相关文章:

  • 德州做网站建设的公司哪家好长春网站优化服务
  • 地方性门户网站有哪些网站排名推广
  • 做网站用vps还是虚拟主机郑州见效果付费优化公司
  • 自己做交易网站吗网络企业推广
  • 单页网站设计欣赏在百度上怎么发布信息
  • 开发一个b2c网站有哪些困难免费的行情网站app
  • 卡密网站怎么做的网络营销与策划实践报告
  • 网站由哪几部分组成推广引流平台
  • 做网站需要知道什么网络游戏推广怎么做
  • 网站的优化 设计义乌百度广告公司
  • 为什么网站不见了杭州seo营销
  • wordpress如何加载css中山网站seo
  • 网站404页面做晚了重庆seo哪个强
  • 网站产品二级分类seo免费外链工具
  • 数据库2008做企业网站自助建站网站
  • 黑客攻击的网站百度知道合伙人答题兼职
  • 成都门户网站有哪些宣传推广渠道有哪些
  • 网站代理备案 靠谱么武汉seo招聘信息
  • 西宁集团网站建设网络营销的策划流程
  • 山东济南市网站建设一呼百应推广平台
  • 做网购内部优惠券网站网络推广和信息流优化一样么
  • 淘宝客如何免费做网站郑州网站推广公司
  • 网站页脚优化怎么做石家庄网站建设方案
  • 泰州城乡建设网站网络推广平台公司
  • 做威尼斯网站代理算是违法吗seo诊断的网络问题
  • 公司注册流程及条件seo快速工具
  • 什么类型客户做网站全网关键词搜索
  • 网站建设需要下载哪些软件有哪些网站建设公司排行榜
  • 怎样上传网站电商自学网
  • 福州网站建设要找嘉艺网络排行榜软件