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

建设免费手机网站设计公司装修图

建设免费手机网站,设计公司装修图,嘉兴南湖区建设局网站,苏州品牌网站设计Promise详解 文章目录 Promise详解1、异步操作,同步操作2、Promise3、Promise使用3.1.创建promise3.2.使用 Promise:1.then2.cath3.finally**静态方法**:resolve,reject,all,race,allSettled,any 1、异步操作,同步操作 异步操作是…

Promise详解

文章目录

  • Promise详解
      • 1、异步操作,同步操作
      • 2、Promise
      • 3、Promise使用
        • 3.1.创建promise
        • 3.2.使用 Promise:
          • 1.then
          • 2.cath
          • 3.finally
          • **静态方法**:resolve,reject,all,race,allSettled,any

1、异步操作,同步操作

异步操作是指在编程中,某个任务的执行不会立即完成,同时不会阻塞后续代码的执行。在异步操作中,程序可以继续运行,并在异步任务完成时得到通知并处理结果。

同步操作会阻塞程序的继续执行直到任务完成。

异步操作的作用:如果没有异步,那么每请求一个接口,页面都将不能被滑动,呈现出来就是一卡一卡的

回调函数是最基本的异步处理方式。在异步操作完成后,调用预先传入的函数。但是,会出现回调地狱。

2、Promise

Promise 是 JavaScript 的一个特性,它允许你在异步操作(如网络请求)完成后执行某些代码。它代表了一个将来才会知道结果的操作。解决回调地狱

Promise 可以处于以下三种状态之一:

pedding->初始状态:调用promise时,一开始就呈现出等待状态,遇到resolve或者reject之前,都处于这个状态,且可以改变,但如果确定了状态(fulfilled/reject),则结果将永远不变,不能再次修改

fulfilled->成功状态:在执行了resolve后,promise则会从pedding变成fulfilled,后续会进入.then 的回调函数中,在回调函数的第一个参数函数中可以获取到值

rejected->失败状态:在执行了reject后,promise状态会变成rejected,rejected函数传递的参数,可以在.then的第二个参数函数中获取的到,或者是在.catch获取到,但是如果程序上的错误,得通过.catch函数去拿到失败消息,在.then中是获取不了的

3、Promise使用

3.1.创建promise
let promise = new Promise((resolve, reject) => {// 异步操作if (/* 操作成功 */) {resolve(value); // 成功时调用} else {reject(error); // 失败时调用}
});
3.2.使用 Promise:
1.then
  • then():接收两个函数作为参数,第一个函数在 Promise 成功时调用,第二个在失败时调用。
promise.then(value => { /* 成功时的处理 */ },error => { /* 失败时的处理 */ }
);
2.cath
  • catch():用于捕获 Promise 中发生的错误。
promise.catch(error => { /* 错误处理 */ }
);
3.finally
  • finally():无论 Promise 最终状态如何都会执行。
promise.finally(() => {// 总是会执行的代码
});

链式调用:可以将多个 .then().catch() 串联起来,形成链式调用。

静态方法:resolve,reject,all,race,allSettled,any
  • Promise.resolve(value)

    • 创建一个立即解析的 Promise 对象,状态为 fulfilled
    • 等同于 new Promise(resolve => resolve(value))
  • Promise.reject(reason)

    • 创建一个立即拒绝的 Promise 对象,状态为 rejected
    • 等同于 new Promise((_, reject) => reject(reason))
  • Promise.all(iterable)

    • 接收一个 Promise 可迭代对象(如数组)
    • 当所有 Promise 都成功时返回一个包含所有结果的数组
    • 如果有一个 Promise 失败,则立即拒绝并返回第一个失败的原因
  • Promise.race(iterable)

    • 接收一个 Promise 可迭代对象
    • 返回第一个完成(无论成功或失败)的 Promise 的结果或原因
  • Promise.allSettled(iterable)

    • 接收一个 Promise 可迭代对象

    • 等待所有 Promise 完成(无论成功或失败)

    • 返回一个包含每个 Promise 结果的对象数组,每个对象有 status(state表示promise的状态:resolve和rejected)和 value (value代表的是promise传递的值)或 reason 属性

    • var p1 = new Promise((resoleve, reject) => {setTimeout(() => {console.log("----打印:p1");resoleve("p1--3000");}, 3000);
      });let p2 = new Promise((resoleve, reject) => {setTimeout(() => {reject("p2--1000");}, 1000);
      });let p4 = new Promise((resolve, reject) => {throw new Error("抛出错误");
      });Promise.allSettled([p1, p2, p4]).then((result) => {console.log("----打印:result", result);}).catch((err) => {console.log("----打印:", err); //不执行});//执行结果
      // ----打印:p1
      // ----打印:result [
      //   { status: 'fulfilled', value: 'p1--3000' },
      //   { status: 'rejected', reason: 'p2--1000' },
      //   {
      //     status: 'rejected',
      //     reason: Error: 抛出错误
      //   }
      // ]
      
  • Promise.any(iterable)

    • 接收一个 Promise 可迭代对象
    • 返回第一个成功的 Promise 的结果
    • 如果所有 Promise 都失败,则返回一个 AggregateError 包含所有失败原因
  • Promise.any(iterable)

    • 接收一个 Promise 可迭代对象
    • 返回第一个成功的 Promise 的结果
    • 如果所有 Promise 都失败,则返回一个 AggregateError 包含所有失败原因

文章转载自:

http://Yn2rtTKw.ptcsk.cn
http://w9aIx5f3.ptcsk.cn
http://E0UT05MI.ptcsk.cn
http://23Dzc8nd.ptcsk.cn
http://5DS7Qpo1.ptcsk.cn
http://OR9pWrbF.ptcsk.cn
http://dZ8hqhmM.ptcsk.cn
http://rFv2SifO.ptcsk.cn
http://TImPlumr.ptcsk.cn
http://DnKaaGC5.ptcsk.cn
http://1d0V4j66.ptcsk.cn
http://kDW0n4JM.ptcsk.cn
http://DASLaPvd.ptcsk.cn
http://Lj3t12x6.ptcsk.cn
http://KxcGDX5V.ptcsk.cn
http://2wpQOKjK.ptcsk.cn
http://HlLFErfx.ptcsk.cn
http://TrUbZzGA.ptcsk.cn
http://mhRVlPeK.ptcsk.cn
http://WUcSNyMS.ptcsk.cn
http://NqVLGn5E.ptcsk.cn
http://zEULqDgy.ptcsk.cn
http://mHcDOPst.ptcsk.cn
http://3O7udEyK.ptcsk.cn
http://yp4E8NYk.ptcsk.cn
http://2xhJtlAh.ptcsk.cn
http://siP9vBEq.ptcsk.cn
http://YKP97hxM.ptcsk.cn
http://o1jYOJ40.ptcsk.cn
http://GNSPU77K.ptcsk.cn
http://www.dtcms.com/wzjs/688008.html

相关文章:

  • 个人网站可以名字写官网吗乐清网站制作公司
  • 广东省城乡住房建设厅网站首页百度云网盘资源搜索引擎入口
  • 网站建设企业网站建设小程序公司排名
  • 梅州做网站需要多少钱商标网商标购买
  • 长沙建站工作室无货源网店
  • 赣州做网站优化保定网站制作公司
  • 网站空间到期 数据旅游网站开发内容
  • 视频素材库网站下载云呼叫中心系统 免费
  • 在菲律宾做网站推广怎么样优化大师官网下载安装
  • 邳州城乡住房和城乡建设网站巩义网站建设托管
  • 潍坊网站外包吴忠建设网站
  • 网站 维护 费用如何提取网页中的视频
  • 如何查询网站服务器地址html欧美网站模板
  • 福田附近公司做网站建设哪家效益快建个公司网站多少钱
  • 国内设计好的网站案例珠海易注册网站
  • 哪里学网站开发好中山市 有限公司网站建设
  • 做爰全过程免费的视频 网站科技公司logo设计图片
  • 做外贸的网站如何选择服务器手机网站制作器
  • 新乡河南网站建设找一个网站做搜索引擎分析
  • 自学网站建设要看什么书做电影下载网站好
  • 做网站可以卖钱吗彩票网站该怎么建设
  • 做培训的网站银行 网站开发 干什么
  • 建立传媒公司网站官网查询证书
  • 嘉定南翔网站建设中卫网架配件生产
  • 如何查网站外链互联网旅游网站建设策划书
  • 企业网站建设开发注意事项网店代运营十大排名
  • 重庆营销型网站设计东莞seo建站排名
  • 广州做外贸网站多少钱大都会app最新版本下载
  • 做版面的网站一个简单的html网页
  • 性能网站建设子网站怎么建设