当前位置: 首页 > 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.yayakq.cn/news/999898/

相关文章:

  • 行业门户网站最近网站不收录
  • 用qq号码可以做网站吗wordpress nana
  • 网站建设用哪的图片不侵权网站建设买了服务器后怎么做
  • 平邑做网站河北响应式网站企业
  • 沈阳公司网站h5制作的网站
  • 泰安网站制作哪家好帝国怎么做网站
  • 政务网站建设具体指导意见网站架构变迁
  • 网站开发图书系统前台模板官网网站设计
  • 网站建设 软件有哪些内容网络科技有限公司起名大全
  • 网站建设方案书一定要交google框架三件套
  • 网站开发过程文档一加官方网站进入
  • 离石网站建设软文撰写案例
  • 摄影婚纱网站建设想给公司做个网站
  • 恒辉建设集团网站中山网站的优化
  • 足球网站建设小程序设计页面
  • 网站邮箱设置域名空间费一年多少钱
  • 深圳建网站哪南昌网站建设方案推广
  • 柳州建设公司网站市场营销策划
  • 网站开发需要哪些能力福建众利建设工程网站
  • 网站建设英文字体格式wordpress 多语言站点
  • 凡科网之前做的网站在哪看欧盟理事会
  • 简单网站模板织梦 和wordpress
  • 网站团队的建设域名查询访问
  • 大型网站服务器架构望野原文
  • 企业网站建设的成本哪个网站建设公司好
  • 网站5g空间多少钱网站建设制作免费咨询
  • 500个免费视频素材广东工厂搜索seo
  • 网站开辟两学一做专栏做网站的公司怎么找
  • 网站 按钮 素材关于网站建设的报告
  • 零基础搭建网站查排名的网站