网站维护包括哪些互联网资源整合平台

news/2025/9/23 2:17:48/文章来源:
网站维护包括哪些,互联网资源整合平台,建设工程规划许可证在哪个网站查询,atp最新排名【每日前端面经】2024-03-17 本期重点 —— Promise 欢迎订阅我的前端面经专栏#xff1a;每日前端面经 Tips:每日面经更新从 2-22 到 3-15 已有 23 篇#xff0c;最近愈发觉得内容相似度高#xff0c;并且理解程度不深 于是临时停更面经#xff0c;并将这些面经中的重…【每日前端面经】2024-03-17 本期重点 —— Promise 欢迎订阅我的前端面经专栏每日前端面经 Tips:每日面经更新从 2-22 到 3-15 已有 23 篇最近愈发觉得内容相似度高并且理解程度不深 于是临时停更面经并将这些面经中的重难点以项目实战的方式展现出来供读者参阅本期项目地址https://github.com/xxhls/02-write-promise在线预览02-write-promise 产生背景 在 Promise 出现前对于多个异步请求往往会产生回调地狱 const fs require(fs);fs.readFile(./name.txt, utf-8, (err, data) {fs.readFile(data, utf-8, (err, data) {fs.readFile(data, utf-8, (err, data) {console.log(data);});}); });通过 Promise 可以有效解决以上问题 const fs require(fs);new Promise((resolve, reject) {fs.readFile(./name.txt, utf-8, (err, data) {if (err) reject(err);resolve(data);}).then((data) {return new Promise((resolve) {fs.readFile(data, utf-8, (err, data) {resolve(data);});});}).then((data) {return new Promise((resolve) {fs.readFile(data, utf-8, (err, data) {resolve(data);});});}); })相关 API Promise.all() 接受一个 Promise 可迭代对象作为输入并返回一个 Promise。当所有输入的 Promise 都被兑现时返回的 Promise 也将被兑现并返回一个包含所有兑现值的数组。如果输入的任何 Promise 被拒绝则返回的 Promise 将被拒绝并带有第一个被拒绝的原因 示例 const promise1 Promise.resolve(3); const promise2 Promise.resolve(4); const promise3 new Promise((resolve, reject) setTimeout(resolve, 100, foo));Promise.all([promise1, promise2, promise3]).then((values) console.log(values));// [3, 4, foo]const promise1 Promise.resolve(3); const promise2 Promise.reject(4); const promise3 new Promise((resolve, reject) setTimeout(resolve, 100, foo));Promise.all([promise1, promise2, promise3]).then((values) console.log(values)).cache((reason) console.log(reason));// 4手写 function PromiseAll(promises: ArrayPromise) {// 总共 Promise 的个数const total promises.length;// 完成的 Promise 的个数let i 0;// 存储 Resolve 结果const result [];return new Promise((resolve, reject) {// 逐一添加处理函数promises.forEach((promise) {promise.then((data) {// 完成的 Promise 的个数加一i;// Resolve 结果推入 result 中result.push(data);// 如果全部 Promise 都完成就 Resolve 结果数组if (i total) resolve(result);}).catch((reason) {// 有一个 Promise 被拒绝直接 Reject 该原因reject(reason);});});}); }Promise.allSettled() 将一个 Promise 可迭代对象作为输入并返回一个单独的 Promise。当所有输入的 Promise 都已敲定时包括传入空的可迭代对象时返回的 Promise 将被兑现并带有描述每个 Promise 结果的对象数组 示例 const promise1 Promise.resolve(3); const promise2 new Promise((resolve, reject) setTimeout(reject, 100, foo), ); const promises [promise1, promise2];Promise.allSettled(promises).then((results) results.forEach((result) console.log(result.status)), );// fulfilled // rejected手写 function PromiseAllSettled(promises: ArrayPromise) {// 总共 Promise 的个数const total promises.length;// 完成的 Promise 的个数let i 0;// 存储结果const result [];return new Promise((resolve, reject) {// 逐一添加处理函数promises.forEach((promise) {promise.then((data) {// 完成的 Promise 的个数加一i;// Resolve 结果推入 result 中result.push(fulfilled);// 如果全部 Promise 都完成就 Resolve 结果数组if (i total) resolve(result);}).catch((reason) {// 完成的 Promise 的个数加一i;// Resolve 结果推入 result 中result.push(rejected);// 如果全部 Promise 都完成就 Resolve 结果数组if (i total) resolve(result);});});}); }Promise.any() 将一个 Promise 可迭代对象作为输入并返回一个 Promise。当输入的任何一个 Promise 兑现时这个返回的 Promise 将会兑现并返回第一个兑现的值。当所有输入 Promise 都被拒绝包括传递了空的可迭代对象时它会以一个包含拒绝原因数组的 AggregateError 拒绝 示例 const promise1 Promise.reject(0); const promise2 new Promise((resolve) setTimeout(resolve, 100, quick)); const promise3 new Promise((resolve) setTimeout(resolve, 500, slow));const promises [promise1, promise2, promise3];Promise.any(promises).then((value) console.log(value));// quickconst promise1 Promise.reject(0); const promise2 new Promise((resolve, reject) setTimeout(reject, 100, quick)); const promise3 new Promise((resolve, reject) setTimeout(reject, 500, slow));const promises [promise1, promise2, promise3];Promise.any(promises).catch((reasons) console.log(reasons));// [0, quick, slow]手写 function PromiseAny(promises: ArrayPromise) {// 总共 Promise 的个数const total promises.length;// 完成的 Promise 的个数let i 0;// 存储拒绝结果const reasons [];return new Promise((resolve, reject) {// 逐一添加处理函数promises.forEach((promise) {promise.then((data) {// 如果一个 Promise 完成就 Resolve 数据resolve(data);}).catch((reason) {// 拒绝的 Promise 的个数加一i;// Reject 结果推入 reasons 中reasons.push(reason);// 如果全部 Promise 都拒绝就 Reject 结果数组if (i total) reject(reasons);});});}); }Promise.prototype.catch() 用于注册一个在 promise 被拒绝时调用的函数。它会立即返回一个等效的 Promise 对象这可以允许你链式调用其他 promise 的方法 const promise1 new Promise((resolve, reject) {throw new Error(Uh-oh!); });promise1.catch((error) {console.error(error); }); // Error: Uh-oh!Promise.prototype.finally() Promise 实例的 finally() 方法用于注册一个在 promise 敲定兑现或拒绝时调用的函数。它会立即返回一个等效的 Promise 对象这可以允许你链式调用其他 promise 方法 function checkMail() {return new Promise((resolve, reject) {if (Math.random() 0.5) {resolve(Mail has arrived);} else {reject(new Error(Failed to arrive));}}); }checkMail().then((mail) {console.log(mail);}).catch((err) {console.error(err);}).finally(() {console.log(Experiment completed);});Promise.race() 接受一个 promise 可迭代对象作为输入并返回一个 Promise。这个返回的 promise 会随着第一个 promise 的敲定而敲定 示例 const promise1 new Promise((resolve, reject) {setTimeout(resolve, 500, one); });const promise2 new Promise((resolve, reject) {setTimeout(resolve, 100, two); });Promise.race([promise1, promise2]).then((value) {console.log(value);// Both resolve, but promise2 is faster }); // Expected output: two手写 function PromiseRace(promises: ArrayPromise) {return new Promise((resolve, reject) {// 逐一添加处理函数promises.forEach((promise) {promise.then((data) {// 如果一个 Promise 完成就 Resolve 数据resolve(data);}).catch((reason) {// 如果一个 Promise 完成就 Reject 数据reject(data);});});}); }Promise.reject() 返回一个已拒绝rejected的 Promise 对象拒绝原因为给定的参数 function resolved(result) {console.log(Resolved); }function rejected(result) {console.error(result); }Promise.reject(new Error(fail)).then(resolved, rejected); // Expected output: Error: failPromise.resolve() 将给定的值转换为一个 Promise。如果该值本身就是一个 Promise那么该 Promise 将被返回如果该值是一个 thenable 对象Promise.resolve() 将调用其 then() 方法及其两个回调函数否则返回的 Promise 将会以该值兑现 该函数将嵌套的类 Promise 对象例如一个将被兑现为另一个 Promise 对象的 Promise 对象展平转化为单个 Promise 对象其兑现值为一个非 thenable 值 const promise1 Promise.resolve(123);promise1.then((value) {console.log(value);// Expected output: 123 });Promise.prototype.then() 最多接受两个参数用于 Promise 兑现和拒绝情况的回调函数。它立即返回一个等效的 Promise 对象允许你链接到其他 Promise 方法从而实现链式调用 const promise1 new Promise((resolve, reject) {resolve(Success!); });promise1.then((value) {console.log(value);// Expected output: Success! });手写 Promise const PENDING Symbol(PENDING); const FULLFILLED Symbol(FULLFILLED); const REJECTED Symbol(REJECTED);enum Status {PENDING,FULLFILLED,REJECTED }type Executor (resolve: (value: any) void, reject: (reason: any) void) void;class MyPromise {status: Status;data: any;reason: any;onResolvedCallbacks: Function[];onRejectedCallbacks: Function[];constructor(executor: Executor) {this.status Status.PENDING;this.data null;this.reason null;this.onResolvedCallbacks [];this.onRejectedCallbacks [];const resolve (data: any) {console.log(resolve);if (this.status Status.PENDING) {this.status Status.FULLFILLED;this.data data;this.onResolvedCallbacks.forEach(fn fn());}};const reject (reason: any) {console.log(reject);if (this.status Status.PENDING) {this.status Status.REJECTED;this.reason reason;this.onRejectedCallbacks.forEach(fn fn());}};try {executor(resolve, reject);} catch (error) {reject(error);}}then(onFullfilled: (value: any) any, onRejected: (reason: any) any) {if (this.status Status.FULLFILLED) {onFullfilled(this.data);} else if (this.status Status.REJECTED) {onRejected(this.reason);} else if (this.status Status.PENDING) {this.onResolvedCallbacks.push(() {onFullfilled(this.data);});this.onRejectedCallbacks.push(() {onRejected(this.reason);});}} }console.log(测试 MyPromise); new MyPromise((resolve, reject) {setTimeout(() {console.log(执行完成);resolve(success);}, 1000); }).then((data) {console.log(回调成功);console.log(data); }, (reason) {console.log(reason); });new MyPromise((resolve, reject) {setTimeout(() {console.log(执行完成);reject(failure);}, 1000); }).then((data) {console.log(回调成功);console.log(data); }, (reason) {console.log(回调成功);console.log(reason); });export default MyPromise;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

东莞seo网站优化排名建筑课程网站

目录 一、题目二、解法完整代码 一、题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2&#x…

企业电子商务网站的建设阶段网站建设中 意思

不少网友都写过如何在win32下安装win64系统,他们写的很好,这里仅以win7 32Bit下安装win7 64Bit系统为例进行补充说明. 准备Win7 64Bit系统,将其弄到硬盘里,或者弄到虚拟光驱,SD卡随你便,总之你的系统得能找到它. 详细情况参考其它网友描述例如http://apps.hi.baidu.com/share/d…

大连网站建设要多少钱3d网站建设方案

对于Script.NET,我已经写了三篇文章来介绍它,文章汇总如下 .NET 动态脚本语言Script.NET 入门指南 Quick Start .NET 动态脚本语言Script.NET 开发指南 .NET 动态脚本语言Script.NET 应用举例 希望这三篇文章能帮助你了解Script.NET。 下面的例子,继续讲…

筑建网站首页推广怎么做

试用Vue相关指令完成对以下json数据的显示。显示效果如下: 其中:gender1 显示为女,gender2显示为男。价格超过30元,显示“有点小贵”。价格少于等于30元,则显示“价格亲民”。 data: {books: [{"id": "…

投票网页怎么制作厦门seo排名

[css] 说下background-color:transparent和opacity:0的区别是什么? background-color:transparent: 只是把背景色设置为透明,并不会影响元素中的内容。可以利用 transparent 进行三角、扇形的设置。opacity: 0: 会影响整个元素,元素的内容也会…

网站内容管理规范xml是用来做网站的嘛

配置通过流策略实现流量统计示例 组网图形 图1 配置流策略实现流量统计组网图 设备 接口 接口所属VLAN 对应的三层接口 IP地址 SwitchA GigabitEthernet1/0/1 VLAN 10 - - GigabitEthernet1/0/2 VLAN 20 - - GigabitEthernet1/0/3 VLAN 10、VLAN 20 - - S…

网站策划书免费青海西宁今天刚刚紧急通知

课程来源:人工智能实践:Tensorflow笔记2 文章目录前言1、文件一览2、将load_data()函数替换掉2、调用generateds函数4、效果总结前言 本讲目标:自制数据集,解决本领域应用 将我们手中的图片和标签信息制作为可以直接导入的npy文件。 1、文件一览 首先看…

订制企业网站招标网站平台

亲爱的朋友们: 2024 年高考已然落幕,数百万高三学子站在了人生的重要十字路口,面临着选择大学专业这一关键抉择。在这个节点上,计算机相关专业是否还能被称为“万金油”的选择呢? 相信大家都知道,在最近这几…

网站制作工资seo网页的基础知识

盘点67个Android系统源码安卓爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 源码下载链接:https://pan.baidu.com/s/1zOSFwPJwDJLFfoeRJy9llg?pwd8888 提取码:8888 项目名称 Accelera…

局域网网站怎么做宜春网站建设推广

安装 下载相应mysql安装包: MySQL :: Download MySQL Installer 选择不登陆下载 双击运行下载好的mysql-installer-community-*.*.*.msi 进入类型选择页面,本人需要mysql云服务就选择了server only server only(服务器)&#x…

现代化的中国风网站南宁网站设计推荐

文章目录 AI大模型的定义与特点AI大模型在金融领域的应用 01 大模型在金融领域的 5 个典型应用场景02 大模型在金融领域应用所面临的风险及其防范03 AIGC 技术的科林格里奇困境04 金融机构使用 AIGC 技术的 4 条可能路径AIGC重塑金融:AI大模型驱动的金融变革与实践…

海外网站营销潍坊中脉网站建设公司

本篇主要讲YUV与RGB之间的转换,包括YUV444 颜色编码格式 转为 RGB 格式 ,RGB颜色编码格式转为 YUV444 格式。 一、 YUV与RGB之间的转换 YUV与RGB颜色格式之间进行转换时 , 涉及一系列的数学运算 ; YUV 颜色编码格式转为RGB格式的转换公式 取决于 于 YUV …

做网站建设公司赚钱吗优质院校 建设网站

目录 注册表概述 打开关闭注册表 创建删除子健 查询写入删除键值 子健和键值的枚举 常用注册表操作 注册表概述 注册表是Windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库",也可以说是一个非常巨大的树状分层结构的…

通河县机场建设网站小程序做一个要多少钱

数据资源“入表”在即,企业更需筑牢数据合规防线。但企业主企业购买数据、获取数据到底是否合法合规,入表如何防范合规风险?上周三,亿信华辰邀请到北京鑫诺律师事务所高级合伙人、管委会副主任武婕将和大家分享《数据入表法律合规…

手机网站建设多钱首都之窗政务服务平台

项目编号: S 036 ,文末获取源码。 \color{red}{项目编号:S036,文末获取源码。} 项目编号:S036,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设…

石牌桥网站建设建设工程合同司法解释2021

MORMOT数据库连接池 MORMOT封装了一堆的PROPS控件,用于连接各种数据库。 MORMOT的封装是武装到了牙齿的,这堆PROPS控件居然数据库连接池也封装好了。这就为我们省了不少事,笔者非常喜欢! 下面拿TOleDBMSSQLConnectionProperties控…

城乡建设网站 资料员成都百度推广排名优化

概述C 语言运算符分为算术、关系、逻辑、赋值、逗号和 sizeof 5 大类。表达式:在 C/C 中,用运算符将操作对象连接起来就构成了表达式。表达式是用于计算的式子,是计算求值的基本单位。操作对象:又称操作数,操作数可以为…

专业的网站开发建设公司做网站之前要准备什么

一、 什么是性能调优? 这个系统好慢、网站又打不开了,太卡了,又没响应了,相信大家都遇到过用户的这种抱怨,此时,说明我们的应用系统出现了性能问题,那么怎么办呢,首先想到的应该是优…

邢台网站制作有哪些企业网站seo诊断报告

本文将为关注织梦者的朋友提供的是的帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法相关教程,具体实例代码请看下文:本文实例讲述了帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法。分享给大家供大家参考。具体实现方法如下:一、设…

百度提交网站收录查询网站建设费属于哪个会计科目

目录 一、初始配置 二、添加文件 三、查看日志 四、修改文件 五、版本回退 六、撤销修改 七、删除文件 一、初始配置 Git版本控制器:记录每次的修改以及版本迭代的一个管理系统。 # 初始化本地仓库:git init(base) [rootlocalhost gitcode]# gi…