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

红古微信网站建设有关于网站建设的参考文献

红古微信网站建设,有关于网站建设的参考文献,确定建设电子网站的目的,四川移动网站建设报价promise要解决的问题 回调函数问题 问题一#xff1a;回调函数多层嵌套调用#xff08;回调地狱#xff09; 问题二#xff1a;每次回调的结果存在成功或失败的可能性 使用 promise 解决 解决问题一#xff1a;promise 通过 .then 实现链式调用 解决问题二#xff1a;p…promise要解决的问题 回调函数问题 问题一回调函数多层嵌套调用回调地狱 问题二每次回调的结果存在成功或失败的可能性 使用 promise 解决 解决问题一promise 通过 .then 实现链式调用 解决问题二promise 通过 .catch 统一捕获异常 Promise 的 3 种状态。 • fulfilled表示操作已经成功完成并准备返回结果。 • rejected表示操作执行失败代码可能有异常或人为地调用了 reject()。 • pending如果状态既不是 fulfilled 也不是 rejected则为 pending 状态表示操作执行中。使用 new 创建 Promise 对象之后执行器中的代码会立即执行此时 Promise 为 pending 状态当调用 resolve() 函数之后会把 Promise 的 pending 状态改为 fulfilled 状态类似地reject() 函数会把它从 pending 改为 rejected 状态。 fulfilled 和 rejected 状态统称为settled可以认为是完成状态无论是成功还是失败。 基本语法如下 const promise new Promise((resolve, reject) { // asynchronous code goes here }); 我们首先使用Promise构造函数实例化一个新的 promise 对象并向它传递一个回调函数。回调有两个参数resolve和reject它们都是函数。我们所有的异步代码都在该回调中。 如果一切运行成功承诺将通过调用来实现resolve。如果出现错误则会调用reject。我们可以将值传递给这两种方法这些方法将在使用代码中可用。 Promise 提供了4种方式执行多个 Promise分别是 Promise.all() Promise.allSettled() Promise.any() Promise.race() 接下来分别看一下它们的作用和区别。 1、Promise.all() Promise.all() 静态方法接受一个 Promise 可迭代对象作为输入并返回一个 Promise。当所有输入的 Promise 都被兑现时返回的 Promise 也将被兑现即使传入的是一个空的可迭代对象并返回一个包含所有兑现值的数组。如果输入的任何 Promise 被拒绝则返回的 Promise 将被拒绝并带有第一个被拒绝的原因。 Promise.all 等待所有兑现或第一个拒绝的结果。 const p1 Promise.resolve(3); const p2 1337; const p3 new Promise((resolve, reject) {setTimeout(() {resolve(foo);}, 100); });Promise.all([p1, p2, p3]).then((values) {console.log(values); // [3, 1337, foo] });2、Promise.allSettled() 方法是 promise 并发方法之一。在你有多个不依赖于彼此成功完成的异步任务时或者你总是想知道每个 promise 的结果时使用 Promise.allSettled() 。 相比之下如果任务相互依赖或者如果你想在任何 promise 被拒绝时立即拒绝Promise.all() 返回的 Promise 可能更合适。 Promise.allSettled([Promise.resolve(33),new Promise((resolve) setTimeout(() resolve(66), 0)),99,Promise.reject(new Error(一个错误)), ]).then((values) console.log(values));// [ // { status: fulfilled, value: 33 }, // { status: fulfilled, value: 66 }, // { status: fulfilled, value: 99 }, // { status: rejected, reason: Error: 一个错误 } // ]3、Promise.any() 当输入的任何一个 Promise 兑现时这个返回的 Promise 将会兑现并返回第一个兑现的值。当所有输入 Promise 都被拒绝包括传递了空的可迭代对象时它会以一个包含拒绝原因数组的 AggregateError 拒绝。 该方法对于返回第一个兑现的 Promise 非常有用。一旦有一个 Promise 兑现它就会立即返回因此不会等待其他 Promise 完成 与 Promise.all() 返回一个兑现值数组不同的是我们只会得到一个兑现值假设至少有一个 Promise 被兑现。此方法对于那些如果我们只需要一个 Promise 被兑现但不在意哪一个被兑现的情况更有益。请注意另一个区别该方法在接收到空的可迭代对象时会拒绝因为实际上该可迭代对象不包含任何兑现的项。你可以将 Promise.any() 和 Promise.all() 与 Array.prototype.some() 和 Array.prototype.every() 进行比较。 同时与 Promise.race() 返回第一个敲定无论是兑现还是拒绝的值不同的是该方法返回第一个兑现的值。该方法忽略所有被拒绝的 Promise直到第一个被兑现的 Promise。 const pErr new Promise((resolve, reject) {reject(总是失败); });const pSlow new Promise((resolve, reject) {setTimeout(resolve, 500, 最终完成); });const pFast new Promise((resolve, reject) {setTimeout(resolve, 100, 很快完成); });Promise.any([pErr, pSlow, pFast]).then((value) {console.log(value);// pFast 第一个兑现 }); // 打印 // 很快完成4、Promise.race() 这个返回的 promise 会随着第一个 promise 的敲定而敲定。 当你想要第一个异步任务完成时但不关心它的最终状态即它既可以成功也可以失败时它就非常有用。 如果可迭代对象中包含一个或多个非 promise 值和/或已敲定的 promise则 Promise.race() 将以可迭代对象中找到的第一个此类值敲定。 function sleep(time, value, state) {return new Promise((resolve, reject) {setTimeout(() {if (state 兑现) {return resolve(value);} else {return reject(new Error(value));}}, time);}); }const p1 sleep(500, 一, 兑现); const p2 sleep(100, 二, 兑现);Promise.race([p1, p2]).then((value) {console.log(value); // “二” });const p3 sleep(100, 三, 兑现); const p4 sleep(500, 四, 拒绝);Promise.race([p3, p4]).then((value) {console.log(value); // “三”// p3 更快所以它兑现},(error) {// 不会被调用}, );const p5 sleep(500, 五, 兑现); const p6 sleep(100, 六, 拒绝);Promise.race([p5, p6]).then((value) {// 不会被调用},(error) {console.error(error.message); // “六”// p6 更快所以它拒绝}, );
http://www.zqtcl.cn/news/236877/

相关文章:

  • 辽宁网站建设价格杭江建设有限公司
  • 成立公司在什么网站网络推广推广培训
  • 承德网站制作公司哪家好公司网络组建方案模板
  • 用wordpress 建网站网站关键词怎么改
  • 怎么做网站做站点创建站怎么上传网站怎么办
  • 十堰网站建设专家html做的旅游网站
  • 网站项目上线流程网站改版需求说明
  • 网站建设制作公司xshell如何做网站
  • 义乌个人兼职做建设网站琼海做网站公司
  • 什么网站可以直接做word在柬埔寨做网站彩票推广
  • 深圳市宝安区住房和建设局网站校园网络方案设计
  • 株洲建设网站制作seo快速软件
  • 建站什么程序好wordpress返佣
  • 网站建设使用虚拟主机的优点与缺点马蹄室内设计论坛
  • 像wordpress一样的网站wordpress提示数据库出错
  • 优化网站首页新项目首码对接平台
  • 一个完整的网站建设过程wordpress企业中文模板下载
  • 我做微信淘宝客网站有哪些在公司做网站是什么职位
  • 湖南网站建设公司 干净磐石网络网站开发技术可行性分析怎么写
  • 石家庄制作网站网络推广与优化
  • 建站平台免代码可以自己设计图案的软件
  • 中山网站开发公司事业单位 网站备案
  • wordpress 做用户登录seo快速推广窍门大公开
  • php网站开发试卷做外贸一般在哪个网站
  • 有哪些网站的搜索引擎网站设计需要需要用
  • 网站建设有哪些需求徐州百度运营中心
  • 怎么做电脑网站后台杭州网站制作公司排名
  • 济南手机网站定制价格wordpress前端登陆 投稿
  • 建设企业网站的原因网站开发项目经验和教训
  • 京东网站的建设与发展现状分析手机与pc网站同步模板