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

西安注册公司流程及资料seo怎么做?

西安注册公司流程及资料,seo怎么做?,学网站开发网页制作,宁波搭建网站公简介#xff1a; Promise.all是JavaScript中一种用于处理多个Promise对象的方法#xff0c;该方法接收一个数组作为参数#xff0c;并返回一个新的Promise对象。 这个新的对象会在所有Promise对象都成功解析后解析#xff0c;解析的结果是一个数组#xff0c;包含了所有P…简介 Promise.all是JavaScript中一种用于处理多个Promise对象的方法该方法接收一个数组作为参数并返回一个新的Promise对象。 这个新的对象会在所有Promise对象都成功解析后解析解析的结果是一个数组包含了所有Promise对象解析后的结果。  解析时如果任何一个Promise对象失败则这个新的Promise实例会立即失败并返回第一个失败的Promise对象的错误信息。 Promise.all不会改变原有的Promise对象的状态原有的 Promise 对象仍会按照自己的状态fulfilled或rejected进行解析。 那么Promise.all的具体实现过程是怎样的今天来记录学习下话不多说直接上代码和注释 // 手写Promise.all方法 Promise.myPromiseAll function (props) {// 这里定义res、rej变量在Promsie内部赋值// 这样外部就可以直接调用res()、rej()方法let res, rej;// 这里定义promise1用于最后返回最终状态const promise1 new Promise((resolve, reject) {res resolve;rej reject;});//定义i 表示Promise对象的数量let i 0;// 定义result 用于存储每个成功Promise的结果const result [];//定义fulfilled 用于追踪已完成的Promise数量let fulfilled 0;// 这里不能使用.length判断props数组长度因为他有可能是一些别的可迭代对象// 所以这里使用for of循环Promise的参数propsfor of可以循环任意的可迭代对象for (const item of props) {// 这里保存的数据下标index用于赋值成功后的data数据形成闭包环境const index i;// 这里每循环一次i加1表示Promise数量i;// 这里循环拿到的不一定是一个Promise所以使用Promise.resolve包装一下// 然后处理成功和失败的状态Promise.resolve(item).then((data) {// 这里需要考虑到Promise成功时需要做到什么1、2、// 1、完成的数据汇总到一个数组最终结果// 在上面定义result于存储每个成功Promise的结果// 这里不能使用push方法因为我们需要返回的数据是传递的顺序不是完成的顺序// 所以这里根据下标赋值成功后的data数据result[index] data;// 2、判定是否全部完成// 这里在上面定义fulfilled记录每次完成fulfilled数量加1fulfilled;// 这里判断fulfilled完成的数量和Promise数量相等时表示结束// 把数据result给resif (fulfilled i) { res(result); }// 这里如果失败直接调用失败的方法因为状态一旦确定就无法更改}, rej)// 因为这里是异步代码运行时循环已经结束所以i代表的一定是整体的数量}// 这里循环完成判断i如果等于0表示没有传递任何Promise参数// 直接给一个空数组if (i 0) { res([]); }// 最后直接返回最终状态promise1return promise1; }Promise.myPromiseAll([]).then((res) {console.log(res); }, (err) {console.log(err, err); }) // 输出 []Promise.myPromiseAll([1, 2, 3]).then((res) {console.log(res); }, (err) {console.log(err, err); }) // 输出 [1, 2, 3]Promise.myPromiseAll([1, 2, 3, Promise.reject(456)]).then((res) {console.log(res); }, (err) {console.log(error, err); }) // 输出 error 456Promise.myPromiseAll([1, 2, 3, Promise.resolve(456)]).then((res) {console.log(res); }, (err) {console.log(err, err); }) // 输出 [ 1, 2, 3, 456 ]
http://www.sczhlp.com/news/228881/

相关文章:

  • 音乐网站开发工具上海哪家公司做网站比较好
  • 东莞专业微网站建设价格网站官网建设方案
  • 小学网站建设方案书律师事务所 网站模板
  • 可以用手机建设网站吗建网站主机
  • 做网站那家公司好丽江建设局网站
  • 天津市建设厅官方网站调整百度对网站的最大天级抓取频次值
  • 阿里云官方网站用幽默的语言来形容网站开发
  • 做亚马逊外国网站需要语言好吗地推平台
  • 做网站 珠海品牌策划与推广
  • 做表格的网站橙色的网站
  • 东莞网站建设基本流程建网站多少钱建个网站需要怎么做
  • 网站建设及管理国内新闻大事20条
  • 江山网站建设网站上的代码网页怎么做的
  • 淮滨网站建设公司wordpress 改变字体
  • 电商是干什么的优化就是开除吗
  • 信息类网站建设哈尔滨网站建设推广服务
  • 2025 年健身器材品牌最新推荐排行榜:权威测评揭晓家用商用高口碑品牌及选购指南商用 / 单位 / 家庭 / 有氧 / 力量健身器材推荐
  • 2025 年最新推荐!工业 / 防爆 / 低温 / 水冷 / 螺杆 / 超低温等多类型冷水机定制厂家榜单,助力企业精准选择高效制冷品牌
  • 告别 AI 开发 “瞎折腾”!JBoltAI 框架帮 Java 团队提速,AI 应用落地快人一步
  • 软件技术基础第二次作业
  • 制作大型网站jsp网站开发案例
  • 上海网站建设方案咨询wordpress后台乱了是怎么回事
  • 网站动态图片如何做手机网站建设请示
  • 济南建设网站公司商城网站案例
  • 广东石油化工建设集团网站最好的在线影视免费
  • 网站和网址有什么不同门户网站建设中标结果
  • 品牌营销网站企业网站建设管理视频
  • 南昌网站建设兼职哪些网站收录排名好
  • 长沙的互联网网站公司哪家好金华网站制作建设
  • 江西建设厅网站电子重庆沙坪坝