位置: 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数据分析作业)

  • 小米MIX4和iQOO8怎么选

    小米MIX4和iQOO8怎么选

  • 应该怎样写好网站描述?(怎样写好网评文章)

    应该怎样写好网站描述?(怎样写好网评文章)

  • 微信被别人拉黑我自己可以解除吗(微信被别人拉黑了还能看到朋友圈吗)

    微信被别人拉黑我自己可以解除吗(微信被别人拉黑了还能看到朋友圈吗)

  • win10计算器在哪(win10计算器在哪儿调出来)

    win10计算器在哪(win10计算器在哪儿调出来)

  • 微信会议可以录屏吗(微信会议录音转文字)

    微信会议可以录屏吗(微信会议录音转文字)

  • 买的淘宝号实名认证了就安全吗(买的淘宝号实名已经实名认证了怎么还显示未实名)

    买的淘宝号实名认证了就安全吗(买的淘宝号实名已经实名认证了怎么还显示未实名)

  • 抖音秒赞会限流吗(抖音秒赞限流了怎么办怎么恢复限流)

    抖音秒赞会限流吗(抖音秒赞限流了怎么办怎么恢复限流)

  • 华为p40自带膜要不要撕掉(华为p40手机自带贴膜上面还贴膜吗)

    华为p40自带膜要不要撕掉(华为p40手机自带贴膜上面还贴膜吗)

  • 华为evr-al00是什么型号(华为evr-al00是什么型号手机)

    华为evr-al00是什么型号(华为evr-al00是什么型号手机)

  • oled屏是什么意思(oled 屏幕是什么意思)

    oled屏是什么意思(oled 屏幕是什么意思)

  • 键盘段落感是什么意思(键盘段落感强好还是不好)

    键盘段落感是什么意思(键盘段落感强好还是不好)

  • i51035g4性能(i51035g4是低端处理器吗)

    i51035g4性能(i51035g4是低端处理器吗)

  • 电脑钉钉视频黑屏什么原因(钉钉视频黑屏)

    电脑钉钉视频黑屏什么原因(钉钉视频黑屏)

  • 为什么添加微信直接就通过了(为什么添加微信号显示用户不存在)

    为什么添加微信直接就通过了(为什么添加微信号显示用户不存在)

  • 微机中的硬盘是指什么(电脑固态硬盘怎么装)

    微机中的硬盘是指什么(电脑固态硬盘怎么装)

  • 安卓实况拍照怎么用(安卓实况拍照怎么设置)

    安卓实况拍照怎么用(安卓实况拍照怎么设置)

  • 华为手机有定位功能吗(华为手机有定位功能吗?在哪里找)

    华为手机有定位功能吗(华为手机有定位功能吗?在哪里找)

  • oppor9s屏幕分辨率怎么设置(oppor9s手机分辨率怎么调)

    oppor9s屏幕分辨率怎么设置(oppor9s手机分辨率怎么调)

  • 苹果xr处理器型号(苹果xr处理器是啥)

    苹果xr处理器型号(苹果xr处理器是啥)

  • 小米9配件清单(小米9配件清单图片)

    小米9配件清单(小米9配件清单图片)

  • win11怎么使用快捷键打开小组件和通知中心?(win11怎么桌面快捷方式)

    win11怎么使用快捷键打开小组件和通知中心?(win11怎么桌面快捷方式)

  • Word下划线怎么打(word下划线怎么延长)

    Word下划线怎么打(word下划线怎么延长)

  • PyTorch 深度学习实战 | 基于生成式对抗网络生成动漫人物

    PyTorch 深度学习实战 | 基于生成式对抗网络生成动漫人物

  • 【模糊神经网络】基于simulink的模糊神经网络控制器设计(模糊数学神经网络)

    【模糊神经网络】基于simulink的模糊神经网络控制器设计(模糊数学神经网络)

  • 房屋租赁服务增值税税率是多少
  • 小规模纳税人零申报逾期未申报
  • 缴纳房产税怎么记账
  • 小规模纳税人开普票要交税吗
  • 公司间借款利息增值税进项能否抵扣
  • 税收申报减免
  • 增值税专票已经报税作废不了怎么办
  • 金税盘购买的会计分录
  • 收到发票怎么写收据
  • 银行贷款第三方收款人
  • 税金及附加现金流指定
  • 期初未缴税额本年累计是什么意思
  • 应付债券到期偿还的会计处理
  • 医院纯收入
  • 无形资产减值是否可以转回
  • 盘盈的固定资产计入什么科目
  • 企业招待客户的费用
  • 非本单位费用列支 违反
  • 会计审计合同
  • 代开专票作废需要什么资料?
  • 利润表里的营业税金及附加如何计算
  • 小规模纳税人贷款利息收入增值税税率
  • 增值税多交可以在下一期直接抵吗
  • 固定资产进项发票可以抵扣吗为什么
  • 利润分配需要缴纳企业所得税吗
  • 员工购买公司股权
  • 一次性劳务费需要交税吗
  • 建筑企业预缴企业所得税会计分录
  • 取得高新技术企业
  • 分项结转法怎么结转
  • 库存商品转结
  • 公司借银行款会计分录
  • PHP mysql_result()函数使用方法
  • 其他综合收益属于什么科目借贷
  • 发行债券会计分录怎么写
  • 网络延迟高不稳定怎么办
  • config.cfg是什么文件
  • 图像分割csdn
  • 大前端最新
  • 销项税每月有余额年底怎么处理
  • 织梦程序
  • 员工意外伤害保险可以抵扣进项税吗
  • 加计抵减进项税额怎么计算
  • 社保缴费基数和医保缴费基数一样吗
  • 口罩属于哪个科目 会计
  • 抵顶税款怎么办理
  • 损益类账户借贷方向增减
  • ppp项目政府可以不出资
  • 个人独资企业的投资人以其个人财产对企业债务承担
  • 发票报销流程和条件
  • 苗木免税发票可以开专票吗
  • 个人所得税会计分录怎么做
  • 个人如何进行股票交易
  • sql树结构
  • mysql用中文字段
  • windows server 2008 日志文件在哪
  • 如何ie8升级到10
  • win7与xp文件共享
  • macbookair numbers
  • win10如何禁用windows defender
  • win10更新中重启会怎么样
  • linux的虚拟终端有几个
  • 进入Linux单用户模式
  • win7怎么看磁盘
  • Windows搭建代理服务器
  • javascriptcall和apply
  • 批处理程序教程
  • 批处理在windows中的典型应用
  • bootstrap应用
  • nodejs异步编程及原理
  • 用javascript
  • jquery简单例子
  • python中如何获取列表中位数
  • Unity3D游戏开发标准教程
  • 在jquery中使用什么方法获取和设置属性
  • python3解析json
  • Windows下python2.7.8安装图文教程
  • 上海市税务官方网站网址
  • 工程项目管理费计入什么科目
  • 新疆12366网上办税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设