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

教学成果申报网站 化工专业建设买了网站模版怎么做

教学成果申报网站 化工专业建设,买了网站模版怎么做,温州seo公司排名,网站建设新闻动态在JavaScript中#xff0c;Promise对象是一种处理异步操作的方式。它允许我们以一种更优雅的方式来处理异步代码#xff0c;而不是使用回调函数。在Promise中#xff0c;有一些方法可以帮助我们更好地管理多个Promise实例#xff0c;这些方法包括Promise.all、Promise.any、… 在JavaScript中Promise对象是一种处理异步操作的方式。它允许我们以一种更优雅的方式来处理异步代码而不是使用回调函数。在Promise中有一些方法可以帮助我们更好地管理多个Promise实例这些方法包括Promise.all、Promise.any、Promise.race和Promise.allSettled。在这篇文章中我们将探讨这些方法之间的相同点和不同点并了解它们的应用场景。 相同点 传入参数和处理对象 这些方法都接受一个可迭代的对象作为参数这个对象中的每个元素都是一个Promise实例。此外它们都针对的是多个Promise场景。 应用场景 假设是两个Promise。成功成功时可以使用all any race allSettled成功失败时也可以使用any race allSettled失败成功时可以使用any race allSettled失败失败时则可以使用race allSettled。 不同点 处理结果和处理时机 Promise.all 所有成功才返回数组。如果任何一个Promise失败那么整个Promise链将立即终止并返回错误原因。 Promise.any 只要有一个成功就返回。如果所有Promise都失败那么整个Promise链将返回第一个错误原因。 Promise.race 谁先执行就返回。这意味着只要其中一个Promise完成无论是成功还是失败整个Promise链就会结束并返回相应的结果或错误原因。 Promise.allSettled 所有执行完毕后才返回。无论成功还是失败都会返回一个包含所有Promise状态和值/原因的对象数组。 返回值 Promise.all 成功时返回一个包含所有成功值的数组失败时返回一个包含错误原因的reason。 Promise.any 成功时返回一个包含任意一个成功值的values没有No失败时返回一个包含第一个错误原因的reason。 Promise.race 成功时返回一个包含第一个成功值的values失败时返回一个包含第一个错误原因的reason。 Promise.allSettled 返回一个包含所有Promise状态和值/原因的对象数组格式为[{status:, value:}, {status:, reason:}]。 应用场景 Promise.all 示例 —— 等待所有成功 当你的应用需要同时加载多个资源且所有资源都必须加载完成才能进行下一步操作时Promise.all是一个理想的选择。例如在加载页面前你可能需要确保所有CSS和JS文件都已下载。 假设你正在开发一个应用程序需要同时从多个API端点获取数据。只有当所有请求都成功时你才开始处理数据。 const fetchUserData () new Promise((resolve, reject) {setTimeout(() resolve({ name: Alice, age: 25 }), 1000); });const fetchUserPosts () new Promise((resolve, reject) {setTimeout(() resolve([Post 1, Post 2]), 1500); });const fetchUserComments () new Promise((resolve, reject) {setTimeout(() resolve([Comment 1, Comment 2]), 2000); });Promise.all([fetchUserData(), fetchUserPosts(), fetchUserComments()]).then(values {const [userData, userPosts, userComments] values;console.log(User data:, userData);console.log(User posts:, userPosts);console.log(User comments:, userComments);}).catch(reason {console.error(Failed to load data:, reason);});Promise.any 示例 —— 只要有成功 在需要从多个来源获取数据的情况下如使用多个CDN加载相同的资源你可能只关心至少有一个来源成功。Promise.any可以确保只要有一个请求成功你的应用就能继续运行。 在这个例子中我们尝试从三个不同的服务器获取相同的数据只要其中一个服务器响应我们就认为请求成功。 const fetchFromServerA () new Promise((resolve, reject) {setTimeout(() Math.random() 0.5 ? resolve(Data from Server A) : reject(new Error(Failed)), 1000); });const fetchFromServerB () new Promise((resolve, reject) {setTimeout(() Math.random() 0.5 ? resolve(Data from Server B) : reject(new Error(Failed)), 1500); });const fetchFromServerC () new Promise((resolve, reject) {setTimeout(() Math.random() 0.5 ? resolve(Data from Server C) : reject(new Error(Failed)), 2000); });Promise.any([fetchFromServerA(), fetchFromServerB(), fetchFromServerC()]).then(value {console.log(Received data:, value);}).catch(reason {console.error(All requests failed:, reason);});Promise.race 示例 —— 谁快谁赢 Promise.race适用于那些需要快速响应的场景比如设置请求超时。如果你有一个主要的请求和一个备用请求你可以使用Promise.race来确保无论哪个请求先完成你都可以立即得到结果。 这里我们使用Promise.race来实现一个请求超时的功能。如果主请求在规定时间内没有完成我们将取消它并使用默认值。 const mainRequest () new Promise((resolve, reject) {setTimeout(() resolve(Main Request Data), 2500); });const defaultRequest () new Promise((resolve, reject) {setTimeout(() resolve(Default Request Data), 1000); });Promise.race([mainRequest(), defaultRequest()]).then(value {console.log(Data received:, value);}).catch(reason {console.error(Request failed:, reason);});Promise.allSettled 示例 —— 全盘接收 当你不仅关心所有请求的结果而且还需要知道哪些请求成功了哪些失败了Promise.allSettled就派上用场了。它会返回一个包含了所有请求结果无论成功还是失败的数组每个元素都携带了状态信息。 这个例子中我们想要确保我们能够收集到所有请求的结果无论它们是否成功。 const requestA () new Promise((resolve, reject) {setTimeout(() Math.random() 0.5 ? resolve(Data from A) : reject(new Error(Failed)), 1000); });const requestB () new Promise((resolve, reject) {setTimeout(() Math.random() 0.5 ? resolve(Data from B) : reject(new Error(Failed)), 1500); });const requestC () new Promise((resolve, reject) {setTimeout(() Math.random() 0.5 ? resolve(Data from C) : reject(new Error(Failed)), 2000); });Promise.allSettled([requestA(), requestB(), requestC()]).then(results {results.forEach(result {if (result.status fulfilled) {console.log(Success:, result.value);} else {console.log(Failure:, result.reason);}});});以上代码示例展示了如何在不同的场景下使用这四个Promise方法。请注意为了简化示例我使用了setTimeout来模拟异步请求实际应用中你可能会使用fetch或类似的HTTP请求库。 总结 总结来说Promise.all、any、race和allSettled都是非常有用的工具可以帮助我们在处理多个Promise时更加灵活和高效。理解它们之间的区别以及如何正确地应用它们可以使我们的代码更加健壮和易于维护。
http://www.hkea.cn/news/14298504/

相关文章:

  • 成都专业网站营销北辰手机网站建设
  • 有创意的网站开发都匀网站建设公司
  • 网站目录权限设置东莞软文推广
  • 关于怎样把网站建设好的一些建议cms影视源码采集
  • 校园局域网站建设费用给个网站能用的2022
  • 做网站需要备案吗服装网站建设发展状况
  • 哪个网站代做ppt便宜长清网站建设
  • 石家庄集团公司网站建设wordpress主题怎么设置tdk
  • 内衣网站建设推广手机网站 微信平台
  • 做类似简书的网站排名
  • php企业网站 源码企业电子商务网站建设总结
  • 做建筑效果图最好的网站12380网站建设情况
  • 集团公司网站模板装修网页设计网站
  • 推荐佛山伦教网站设计网站空间和数据库空间
  • 泰州企业网站模板建站网站重大建设项目公开发布制度
  • 网站微信登录怎么做杭州比较好的软装设计公司
  • 企业网站建设好处中国制造网简介
  • 网站逻辑结构优化是指万家建设有限公司网站
  • 装饰网站建设优惠套餐企业网络营销分析报告
  • 上海市建设安全协会网站查询系统瘫网站开发方案 文档
  • 盘锦网站建设公司wap端网站建设
  • 商城网站建设资讯网站丢失了怎么办啊
  • 手机网站建站工作室网站怎么推广引流
  • 电商网站策划物流门户网站开发 报价
  • 设计企业品牌网站最大上传大小wordpress
  • 备案 非网站徐州峰华网架公司
  • 商城网站建设制作注册公司名字推荐
  • 永安城乡建设局网站wordpress 4.8中文版
  • 网站上推广游戏怎么做企业做网站大概需要多少钱
  • 在北京注册公司在哪个网站上网站开发基于百度地图