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

广州化妆品网站建设云闪付当前页面设计隐私

广州化妆品网站建设,云闪付当前页面设计隐私,专题网站开发报价,网址导航百度给定两个 promise 对象 promise1 和 promise2#xff0c;返回一个新的 promise。promise1 和 promise2 都会被解析为一个数字。返回的 Promise 应该解析为这两个数字的和。 示例 1#xff1a; 输入#xff1a; promise1 new Promise(resolve setTimeout(() res…给定两个 promise 对象 promise1 和 promise2返回一个新的 promise。promise1 和 promise2 都会被解析为一个数字。返回的 Promise 应该解析为这两个数字的和。 示例 1 输入 promise1 new Promise(resolve setTimeout(() resolve(2), 20)), promise2 new Promise(resolve setTimeout(() resolve(5), 60)) 输出7 解释两个输入的 Promise 分别解析为值 2 和 5。返回的 Promise 应该解析为 2 5 7。返回的 Promise 解析的时间不作为判断条件。 promise1 和 promise2 都是被解析为一个数字的 promise 对象 注Promise是JavaScript中的内容用于表示异步操作的最终完成或失败并允许我们在结果可用时处理这些操作。它们是以更有组织和结构的方式处理异步代码的一种方法。Promise有三种状态挂起pending、已完成fulfilled或拒绝rejected 1.挂起Promise的初始状态表示异步操作仍在进行中尚未完成。 2.已完成Promise的状态表示异步操作成功完成意味着 promises的结果或值可用。 3.拒绝Promise的状态表示异步操作遇到错误或失败 promises的结果无法获得。Promise提供了像 .then() 和 .catch() 这样的方法来处理已解析的值或错误。 通常使用Promise时会遇到async和await关键字它们用于简化Promise的使用使异步代码看起来更像同步代码 1.async用于定义异步函数确保函数始终返回一个Promise。当在函数声明或函数表达式前使用async关键字时它变成一个异步函数。请注意从异步函数返回的非Promise对象会自动包装成Promise对象。 2.await用于暂停异步函数的执行直到Promise解析。它只能在异步函数内部使用。当在Promise之前使用await时它等待Promise解析或拒绝。如果已解析它继续执行下一行代码如果等待的Promise被拒绝将抛出异常。使用await允许您以更顺序且可读的方式编写异步代码而无需使用.then()显式链接Promise。 当需要同时执行多个异步操作并等待它们全部完成通常会使用Promise.all()方法。 Promise.all()方法用于同时处理多个Promise。它以一个Promise数组或可迭代对象作为输入并返回一个新的Promise在输入数组中的所有Promise都已解析时才会解析。 Promise.all()方法将等待所有Promise解决无论是fulfilled还是rejected。如果所有Promise都被解决返回的Promise也会被解决而输入Promise的已解析值将按照输入Promise的顺序作为数组可用。 请注意Promise.all()不仅接受Promise作为输入还可以接受只包含数字的数组它将解析这些数字例如 await Promise.all([1, 2, Promise.resolve(3), Promise.resolve(4)]).then((value) {console.log(value) }, (error) {console.log(error) })以上代码先用Promise.resolve创建了两个已经解决的Promise对象分别包含值3和4之后的Promise.all接受了一个包含多个Promise对象和普通值的数组创建了一个新的Promise对象新的Promise对象会在所有输入的Promise都解决或其中一个拒绝后解决在这里它包含了两个普通值1和2和两个已经解决的Promise3和4await关键字用于等待一个Promise解决在这里await等待Promise.all的解决一旦Promise.all的所有Promise都被解决.then()方法就会被调用.then方法接受了两个回调函数作为参数第一个回调函数是所有Promise被解决时调用的它接受一个参数value参数value是一个包含所有Promise解决值的数组如果有任何一个Promise被拒绝或者其中一个Promise抛出了异常.then()的第二个参数即错误处理的回调函数就会被调用。 使用Promise.all()允许有效并行执行多个异步操作并在它们全部可用后处理合并的结果。 例如当应用程序需要同时从多个API获取数据时可以使用Promise.all()来并行启动所有请求并等待所有响应。一旦所有Promise都被解决应用程序可以处理合并数据。 法一使用Promise.all创建一个新的Promise该Promise在Promise1和Promise2都被解决后解决使用Promise.all时我们使用await等待Promise1和Promise2都被解决。一旦由Promise.all()返回的Promise被满足promise1和promise2的已解析值将以数组的形式可用。使用解构赋值分别将这些值分配给res1和res2变量最后我们返回res1和res2的和 /*** param {Promise} promise1* param {Promise} promise2* return {Promise}*/ var addTwoPromises async function(promise1, promise2) {try{const [res1, res2] await Promise.all([promise1, promise2]);return res1 res2;}catch (error){console.error(error);throw error; // 重新抛出错误以保持将错误传播给调用者的行为} };/*** addTwoPromises(Promise.resolve(2), Promise.resolve(2))* .then(console.log); // 4*/此算法时间复杂度为O(max(promise1,promise2))取决于解析时间较长的那个Promise空间复杂度为O(1)。 法二仅使用await分别等待Promise1和Promise2的解析此方法比法一更慢因为法一是并行同时等待Promise1和Promise2的执行而本方法按顺序执行两个Promise即一个执行完后再执行另一个 /*** param {Promise} promise1* param {Promise} promise2* return {Promise}*/ var addTwoPromises async function(promise1, promise2) {try{return await promise1 await promise2;}catch (error){console.error(error);throw error; // 重新抛出错误以保持将错误传播给调用者的行为} };/*** addTwoPromises(Promise.resolve(2), Promise.resolve(2))* .then(console.log); // 4*/此算法时间复杂度为O(promise1promise2)两个Promise串行执行空间复杂度为O(1)。 法三使用Promise.then()方法链接Promise /*** param {Promise} promise1* param {Promise} promise2* return {Promise}*/ var addTwoPromises async function(promise1, promise2) {try{return promise1.then((value1) promise2.then((value2) value1 value2));}catch (error){console.error(error);throw error; // 重新抛出错误以保持将错误传播给调用者的行为} };/*** addTwoPromises(Promise.resolve(2), Promise.resolve(2))* .then(console.log); // 4*/此算法时间复杂度为O(promise1promise2)两个Promise串行执行空间复杂度为O(1)。 法四我们可以并行处理promise1和promise2的解决并累积结果即我们可以使用计数器来跟踪已解决的Promise数量一旦所有Promise都已解决它将使用累积的结果解决新的Promise /*** param {Promise} promise1* param {Promise} promise2* return {Promise}*/ var addTwoPromises async function(promise1, promise2) {return new Promise((resolve, reject) {let count 2;let res 0;[promise1, promise2].forEach(async promise {try{const subRes await promise;res subRes;--count;if (count 0){resolve(res);}}catch (err){reject(err);}});}); };/*** addTwoPromises(Promise.resolve(2), Promise.resolve(2))* .then(console.log); // 4*/以上代码创建了一个新Promise对象并在其构造函数中执行了一个迭代resolve和reject是Promise的构造函数提供的回调函数用于控制Promise的状态resolve的作用是将Promise的状态从待定pending变为已解决fulfilledreject的作用是将Promise的状态从待定pending变为已拒绝rejected。对于每个Promise使用async等待其解决值这个过程是并行的。此算法时间复杂度为O(max(promise1,promise2))取决于解析时间较长的那个Promise空间复杂度为O(1)。
http://www.dnsts.com.cn/news/5378.html

相关文章:

  • 开封网站推广郑州建筑公司排名
  • 织梦网站密码忘记网站的好处
  • 经典的高端网站建设公司着陆页设计清除网站黑链
  • 门户网站 建设 如何写手机上干点啥能挣零花钱
  • 怎样做好网站建设设计网站域名哪些后缀更好
  • 公司网站建设方案网页设计网站开发培训
  • APP网站怎么做桂林刚刚发生的事
  • 站长之家html模板wordpress对php版本
  • 推广做网站联系方式无锡市城乡建设局网站
  • 网站客户评价做租赁的行业网站
  • 网络营销咨询网站源码免费广告投放网站
  • 做网站设计的网页加速器免费版 安卓
  • 内网网站建设所需硬件设备白云怎样优化网站建设
  • 哪个厂家的广州网站建设医疗在线网站建设
  • 给网站做seo的价格域名购买后还要解析吗
  • 门户网站开发方案文档做宣传图片的软件
  • 广州技术支持 奇亿网站建设中美军事的最新消息
  • 代做设计的网站陕西建设机械股份有限公司网站
  • asp网站开发程序员做网站做好用的软件
  • 东莞拓步网站建设墙膜 东莞网站建设
  • asp网站域名网站站点是什么
  • 网站建设手机字体大小企业网站会涉及到的版权问题
  • 丽水市住房与城乡建设局网站成品网站 高端
  • 自己做网站导航免费咨询会计
  • 做电影网站前途我国档案网站建设研究论文
  • 电脑如何做网站空间化妆品网页设计论文
  • 做网站什么职业百度是网站吗
  • 知名品牌营销策划案例seo推广教学
  • 企业网站建站公司郑州外贸一般上什么网站
  • 做网站选择什么服务器0453牡丹江信息网息网