位置: IT常识 - 正文

ES6 - Promise详解及用法(es6promise的理解)

编辑:rootadmin
ES6 - Promise详解及用法 一、什么是Promise

推荐整理分享ES6 - Promise详解及用法(es6promise的理解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:es6 promise await,es6介绍,es6 promise作用,es6 promise.all,es6 promise作用,es6 promise.all,es6 promise then,es6 promise then,内容如对您有帮助,希望把文章链接给更多的朋友!

Promise是ES6异步编程的一种解决方案(目前最先进的解决方案是async和await的搭配(ES8),但是它们是基于promise的),从语法上讲,Promise是一个对象或者说是构造函数,用来封装异步操作并可以获取其成功或失败的结果。

二、为什么要使用promise

最重要也是最主要的一个场景就是ajax和axios请求。通俗来说,由于网速的不同,可能你得到返回值的时间也是不同的,但是我们下一步要执行的代码依赖于上一次请求返回值,这个时候我们就需要等待,结果出来了之后才知道怎么样继续下去。 

三、promise的好处

防止出现回调地狱;

提高代码的可读性;

像同步操作那样去执行异步操作

 四、promise的三种状态

1.pending: 等待中,或者进行中,表示还没有得到结果 2.resolved(Fulfilled): 已经完成,表示得到了我们想要的结果,可以继续往下执行 3.rejected: 也表示得到结果,但是由于结果并非我们所愿,因此拒绝执行 

<script> function fn(flag) { //构造函数 return new Promise(function(resolve, reject) { if (flag === true) { resolve('promise状态为成功!') }; if (flag === false) { reject('promise状态失败!') }; }) } console.log(fn(true)); </script>五、promise的用法 

1.promise的实例方法

ES6 - Promise详解及用法(es6promise的理解)

①then()      得到异步任务的正确结果

②catch()    获取异常信息 ③finally()   成功与否都会执行(尚且不是正式标准)  注意:then方法可以接受两个函数,第一个函数为promise状态为成功的回调函数,第二个函数为promise状态为失败的回调函数(可以不写,一般用catch方法捕获promise状态为失败的异常信息)

<script> let pro = new Promise((resolve, reject) => { if (Math.random() > 0.5) { resolve("i'm resolve"); } else { reject("i'm reject"); } }) pro.then((res) => { console.log(res); }).catch((err) => { console.log(err); })</script>

案例

    目标:拿到关于 狙击手 电影的描述

    过程:

    1.先登录

    2.请求 导演信息 找到张导的id

    3.请求 电影信息 找到描述 

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script><script> // 1.登录 // let myLogin = () => new Promise() function myLogin() { return new Promise((resolve, reject) => { $.ajax({ type: 'get', url: '../json/login.json', success(res) { resolve(res); }, error(err) { reject(err); } }) }) } // 2.导演列表 function myDirector() { return new Promise((resolve, reject) => { $.ajax({ type: 'get', url: '../json/director.json', success(res) { resolve(res); }, error(err) { reject(err); } }) }) } // 3.电影信息 function myFilm(id) { return new Promise((resolve, reject) => { $.ajax({ type: 'get', url: '../json/' + id + '.json', success(res) { resolve(res); }, error(err) { reject(err); } }) }) } myLogin().then(res => { return myDirector(); }).then(res => { return myFilm(3); }).then(res => { console.log(res); }).catch(err => { console.log(err); })</script> 2.promise的对象方法(p1,p2,p3为promise的实例对象)

①Promise.all()  并发处理多个异步任务,所有任务都执行完成才能得到结果

Promise.all( [p1,p2,p3] ) .then ( (result) => { consoleog (result)})

②Promise.race()  并发处理多个异步任务,只要有一个任务完成就能得到结果

Promise.race ( [p1,p2,p3] ).then ( (result)=>{ console. log (result)})六、总结

1.promise其实就是一个对象或者说是构造函数 2.promise的出现(es6) 就是解决异步编程和回调地狱等问题,async和await的出现(ES8)就是基于promise的一种解决异步编程的终极解决方案(简化代码等等) 3.在前端中,ajax和axios都会用到异步编程,axios更是基于promise的,所以一定要掌握        promise以及用async和await搭配promise的使用

本文链接地址:https://www.jiuchutong.com/zhishi/300225.html 转载请保留说明!

上一篇:PyTorch学习系列教程:何为Tensor?(pytorch如何学)

下一篇:大学生问AI(大学生问卷spss数据分析作业)

  • 微信系统升级中稍后注册什么意思(微信升级中怎么回事)

    微信系统升级中稍后注册什么意思(微信升级中怎么回事)

  • 微信营销互动活动的运营要素(微信营销策划活动)

    微信营销互动活动的运营要素(微信营销策划活动)

  • 苹果13支持120hz吗(苹果13支持120hz高刷吗)

    苹果13支持120hz吗(苹果13支持120hz高刷吗)

  • 一个钉钉群可以同时开两个直播吗(一个钉钉群可以进两个家长吗)

    一个钉钉群可以同时开两个直播吗(一个钉钉群可以进两个家长吗)

  • 如何充q币(如何充Q币)

    如何充q币(如何充Q币)

  • word字体如何放大(word字体如何放到比初号还大)

    word字体如何放大(word字体如何放到比初号还大)

  • 苹果11是什么屏幕材质(苹果11是什么屏幕分辨率)

    苹果11是什么屏幕材质(苹果11是什么屏幕分辨率)

  • 官方收款码提现要手续费吗(官方收款码提现为什么还收费)

    官方收款码提现要手续费吗(官方收款码提现为什么还收费)

  • 中国第一台微型计算机(中国第一台微型汽车)

    中国第一台微型计算机(中国第一台微型汽车)

  • 支付宝扫码有记录吗(支付宝扫码有记录吗但钱没付的)

    支付宝扫码有记录吗(支付宝扫码有记录吗但钱没付的)

  • iphone8plus蜂窝网速慢(iphone8plus蜂窝网络空白怎么办)

    iphone8plus蜂窝网速慢(iphone8plus蜂窝网络空白怎么办)

  • 升级显卡有什么用(显卡升级用什么)

    升级显卡有什么用(显卡升级用什么)

  • cad2019里平方米怎么打(cad平方米符号怎么打)

    cad2019里平方米怎么打(cad平方米符号怎么打)

  • 拼多多晒图如何置顶(拼多多晒图怎么操作步骤)

    拼多多晒图如何置顶(拼多多晒图怎么操作步骤)

  • word怎么弄成左右两页(word怎么弄成左右两页并排打印)

    word怎么弄成左右两页(word怎么弄成左右两页并排打印)

  • oppo手机使用记录查看(oppo手机使用记录怎么查看足迹)

    oppo手机使用记录查看(oppo手机使用记录怎么查看足迹)

  • ps4ps键是哪个(ps4ps按钮是哪个)

    ps4ps键是哪个(ps4ps按钮是哪个)

  • 机械计算机用什么储存数据(机械计算机用什么电池好)

    机械计算机用什么储存数据(机械计算机用什么电池好)

  • 小红书修改收货地址(小红书修改收货地址为什么不成功)

    小红书修改收货地址(小红书修改收货地址为什么不成功)

  • cad标注样式设置快捷键(cad标注样式设置参数最合适)

    cad标注样式设置快捷键(cad标注样式设置参数最合适)

  • 【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动)

    【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动)

  • python进程池的使用注意(进程 python)

    python进程池的使用注意(进程 python)

  • 旅游交什么税
  • 减免附加税怎么填报
  • 加油发票样式图
  • 查账征收的个体户怎么报税
  • 企业可以采用多品牌战略吗
  • 盈余公积补亏账务处理分录
  • 工资哪些扣款应该扣税
  • 税务局代增值税专用发票盖什么章
  • 代开专用发票缴纳的增值税需要计提吗?
  • 税控盘基本信息设置
  • 处于成熟期的企业其预算模式的特点是以什么为起点
  • 技术服务费属于什么税收分类编码
  • 外籍人士劳务费怎么交税
  • 工程施工合同暂估价格入账会计分录
  • 天猫技术服务费什么时候返还
  • 公司还款给法人需要缴税吗
  • 应补退所得税额是什么
  • 普惠性税收优惠政策包括
  • 每股收益怎么计算净利润
  • 收购免税农产品的税率
  • 差额征税的计算方式
  • 非货币性资产是无形资产吗
  • 未开票收入缴纳所得税吗
  • laravel5 使用try catch的实例详解
  • 销售免税商品可以抵扣进项税吗
  • 收购后的固定资产如何入账
  • php类和对象
  • 资本公积和盈余公积的提取比例
  • 山茶花的养殖方法和注意事项视频
  • php session存储方式
  • php常用设计模式有哪些
  • 专项应付款转资本公积需要什么附件
  • php array_reverse 以相反的顺序返回数组实例代码
  • 钢管租赁费如何计算
  • 分配结转制造费用时借方科目?
  • 其他经营收益怎么算
  • 文心一言 VS ChatGPT
  • thinkphp钩子场景
  • 遍历队列中所有数据元素
  • 支付网络服务费属于现金流量表的哪一项
  • 接口二次封装
  • 代垫运费增值税计入销项税额吗
  • 外贸出口退税进项发票有多家供应商怎么匹配
  • 公司名义送花圈
  • 发票没拿回来可以报销吗
  • java将整数转化为数组
  • mongodb从入门到商业实战
  • 一般纳税人资格证明在哪里查询
  • 收回以前年度多发奖金分录
  • 工伤保险如何认定
  • 对方给我们等额的钱
  • 民间非营利组织包括哪些单位
  • 厂房装修费用账务处理
  • 港口建设费征收管理办法
  • 成本会计和管理会计哪个好
  • windows mysql1045
  • mysql创建用户密码命令
  • unins000.exe - unins000是什么意思
  • mac苹果电脑如何开4个微信号
  • linux 磁盘情况
  • xp电脑注册表怎么打开
  • win10鼠标箭头怎么换样式
  • Win10 64位系统下火狐浏览器打开带flash网页卡死的解决方法
  • win8系统没有自带的游戏吗
  • 怎么解圧
  • win8系统恢复
  • Linux通过netstat命令查看80端口连接数的方法
  • win10 提示
  • win8.1无法更新
  • javascript 高级
  • unity hover
  • 教女朋友学英语
  • Emeditor与dos(cmd)经典使用技巧之批量生成网页
  • js中new一个函数
  • android实战项目
  • 税务局收垃圾处置费
  • 黑龙江电子税务局
  • 物业费增值税税率5%
  • 国家税务认证平台是什么
  • 医生兼职取酬违反什么纪律
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设