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

网上商城网站模板教育网站制作下载

网上商城网站模板,教育网站制作下载,杭州定制网站制作,苏州公司网站建设价格Promise.all 是一个非常有用的工具#xff0c;它接受一个 Promise 对象数组#xff0c;并返回一个新的 Promise。当所有输入的 Promise 都成功解决时#xff0c;新的 Promise 会解决为一个包含所有结果的数组#xff1b;如果任何一个 Promise 被拒绝#xff0c;新的 Prom…Promise.all 是一个非常有用的工具它接受一个 Promise 对象数组并返回一个新的 Promise。当所有输入的 Promise 都成功解决时新的 Promise 会解决为一个包含所有结果的数组如果任何一个 Promise 被拒绝新的 Promise 会立即被拒绝并返回第一个被拒绝的错误。 function myPromiseAll(promiseArray) {return new Promise((resolve, reject) {//1.参数检查//检查传入的参数是否为数组如果不是数组则抛出 TypeError。if (!Array.isArray(promiseArray)) {return reject(new TypeError(arguments must be an array))}//2.初始化//创建一个 results 数组来存储每个 Promise 的结果。//初始化 count 计数器用于记录已经完成的 Promise 数量。//获取 promises 数组的总长度 len。let result []let count 0const len promiseArray.length//3.特殊情况处理//如果 promises 数组为空直接返回一个已解决的 Promise其结果为一个空数组。if (len 0) {resolve(result)}//4.遍历 Promise 数组//使用 for循环 遍历 promises 数组。//对每个 Promise 使用 Promise.resolve 确保它是 Promise 对象。//使用 then 方法处理每个 Promise 的成功和失败情况//成功时将结果存储在 results 数组中并增加 count。//如果 count 达到 len说明所有 Promise 都已成功解决调用 resolve 方法传递 results 数组。//失败时立即调用 reject 方法传递错误信息。for (let i 0; i len; i) {Promise.resolve(promiseArray[i]).then((res) {result[i] rescountif (count len) {resolve(result)}}).catch((err) reject(err))}})}// 示例代码const promise1 Promise.resolve(1);const promise2 Promise.resolve(2);const promise3 new Promise((resolve) setTimeout(() resolve(3), 1000));const promise4 Promise.reject(Error);myPromiseAll([promise1, promise2, promise3]).then((results) {console.log(All promises resolved:, results); // 输出: All promises resolved: [1, 2, 3]}).catch((error) {console.error(An error occurred:, error);});myPromiseAll([promise1, promise2, promise4]).then((results) {console.log(All promises resolved:, results);}).catch((error) {console.error(An error occurred:, error); // 输出: An error occurred: Error}); Promise.race 接受一个 Promise 对象数组并返回一个新的 Promise。新的 Promise 会在第一个输入的 Promise 被解决或拒绝时立即解决或拒绝其结果或错误信息取决于第一个完成的 Promise。 function myPromiseRace(promiseArray) {return new Promise((resolve, reject) {//1.参数检查//检查传入的参数是否为数组如果不是数组则抛出 TypeError。if (!Array.isArray(promiseArray)) {return reject(new TypeError(arguments must be an array))}//2.遍历 Promise 数组//使用 for 循环遍历 promises 数组。//对每个 Promise 使用 Promise.resolve 确保它是 Promise 对象。//使用 then 方法处理每个 Promise 的成功和失败情况//成功时立即调用 resolve 方法传递结果值。//失败时立即调用 reject 方法传递错误信息。for (let i 0; i promiseArray.length; i) {//写法一Promise.resolve(promiseArray[i]).then((res) {resolve(res)},(error) {reject(error)})//写法二//Promise.resolve(promiseArray[i]).then(resolve, reject)}})}// 示例代码const promise1 Promise.resolve(1);const promise2 new Promise((resolve) setTimeout(() resolve(2), 1000));const promise3 new Promise((resolve) setTimeout(() resolve(3), 500));const promise4 Promise.reject(Error);myPromiseRace([promise1, promise2, promise3]).then((result) {console.log(First resolved promise:, result); // 输出: First resolved promise: 1}).catch((error) {console.error(An error occurred:, error);});myPromiseRace([promise2, promise3, promise4]).then((result) {console.log(First resolved promise:, result);}).catch((error) {console.error(An error occurred:, error); // 输出: An error occurred: Error}); Promise.finally 用于指定不管 Promise 最终状态如何都会执行的操作。这个方法通常用于清理工作比如关闭文件句柄、清除定时器等。 正常使用 promise.then((result) {// 处理已解决的情况}).catch((error) {// 处理已失败的情况}).finally(() {// 不管Promise对象最终的状态如何都会执行的回调函数}); 手动实现 function myPromiseFinally(promise, callback) {return promise.then(//接受两个参数一个 Promise 对象 promise 和一个回调函数 callback。//使用 then 方法分别处理 promise 的成功和失败情况。//在成功的情况下先调用 callback 回调函数然后返回原始的成功值。//在失败的情况下先调用 callback 回调函数然后重新抛出原始的错误。(value) Promise.resolve(callback()).then(() value),(error) Promise.resolve(callback()).then(() {throw error}))}//示例代码 const promise1 Promise.resolve(1); const promise2 new Promise((resolve) setTimeout(() resolve(2), 1000)); const promise3 new Promise((resolve, reject) setTimeout(() reject(Error), 500));// 成功的情况 myPromiseFinally(promise1, () {console.log(Finally block executed); }).then((result) {console.log(Result:, result); // 输出: Result: 1 }).catch((error) {console.error(Error:, error); });// 延迟成功的情况 myPromiseFinally(promise2, () {console.log(Finally block executed); }).then((result) {console.log(Result:, result); // 输出: Result: 2 }).catch((error) {console.error(Error:, error); });// 失败的情况 myPromiseFinally(promise3, () {console.log(Finally block executed); }).then((result) {console.log(Result:, result); }).catch((error) {console.error(Error:, error); // 输出: Error: Error });
http://www.hkea.cn/news/14335303/

相关文章:

  • 班级网站开发报告昆山vi设计
  • 企业网站域名服务器网页开发背景
  • 陕西住房和城乡建设厅网站6wordpress 响应 完整 模板
  • 网站建设与维护asp大数据分析
  • 利用php做网站教程win10 wordpress安装教程视频教程
  • 网站建设与网页制作实训报告wordpress+后门检查
  • 你学做网站学了多久wordpress 内置tag
  • 电商网站首页字体网站推广填空题
  • 四川省信用建设促进会网站网站建设新际
  • 潍坊网站设计好处域名服务器分为
  • 珠海网站制作定制新渝网
  • 网站建设与管理课程总结中小企业网站建设开题报告
  • 什么网站可以做引文分析网络服务合同模板
  • 淘宝上网站建设是什么seo策略是什么意思
  • 友情链接的网站道滘镇做网站
  • 顶做抱枕网站搭建发卡网站要多少钱
  • 专业做生鲜的网站源码超市网站源码
  • 所有网站都能进的浏览器特色食品网站建设策划书
  • 网站被攻击打不开怎么办用仿站工具做网站
  • 宁波网站排名公司百度点击排名收费软件
  • 不备案如何架设网站成都外包公司有哪些
  • 舟山市住房城乡建设局网站我要用新浪云做网站
  • 网站建设如何空间绑定域名阿里云怎么建网站
  • 服装网站建设开题报告网站后台使用
  • 手机wap网站模板 带后台莱芜网站制作公司
  • 九江哪里做网站建标库官网入口
  • 大学生兼职网站开发毕设论文东莞网页开发
  • 网站维护收费广东网站开发收费
  • 网站的特征包括大连网站开发培训价格
  • 湛江网站搜索引擎推广海门工程造价信息网