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

  • 360门铃怎么重新连接无线网(360门铃怎么重新设置)

    360门铃怎么重新连接无线网(360门铃怎么重新设置)

  • windows defender怎么关闭(windows defender怎么添加信任)

    windows defender怎么关闭(windows defender怎么添加信任)

  • 华为nova5有没有永不熄屏(华为nova5有没有智能遥控功能)

    华为nova5有没有永不熄屏(华为nova5有没有智能遥控功能)

  • 华为nova5pro的卡槽在哪(华为nova5pro的卡槽位置在哪里)

    华为nova5pro的卡槽在哪(华为nova5pro的卡槽位置在哪里)

  • 腾讯视频会员登录闪退(腾讯视频会员登录一定要QQ或者微信吗)

    腾讯视频会员登录闪退(腾讯视频会员登录一定要QQ或者微信吗)

  • 声音与视频信息在计算机内的表现形式是什么(声音与视频信息表现形式)

    声音与视频信息在计算机内的表现形式是什么(声音与视频信息表现形式)

  • 快币可以赠送别人嘛(快币能不能赠送)

    快币可以赠送别人嘛(快币能不能赠送)

  • 怎样查找删除的聊天记录(怎样查找删除的电话号码)

    怎样查找删除的聊天记录(怎样查找删除的电话号码)

  • 正在注销关不了机怎么回事(正在注销很久)

    正在注销关不了机怎么回事(正在注销很久)

  • qq友谊的小船能有多少个(QQ友谊的小船能取消掉不)

    qq友谊的小船能有多少个(QQ友谊的小船能取消掉不)

  • 微信不是对方好友却能发信息(微信不是对方好友能看到朋友圈吗)

    微信不是对方好友却能发信息(微信不是对方好友能看到朋友圈吗)

  • 苹果手机可不可以下载两个微信(苹果手机可不可以登陆两个微信)

    苹果手机可不可以下载两个微信(苹果手机可不可以登陆两个微信)

  • 什么是计算机多媒体技术(多计算机系统属于什么体系结构)

    什么是计算机多媒体技术(多计算机系统属于什么体系结构)

  • word表格怎么插一行(word表格怎么插斜线)

    word表格怎么插一行(word表格怎么插斜线)

  • 天猫上门取件服务是在哪里(天猫上门取件服务收费)

    天猫上门取件服务是在哪里(天猫上门取件服务收费)

  • 能刷快手直播间人数吗(刷快手直播间礼物软件)

    能刷快手直播间人数吗(刷快手直播间礼物软件)

  • 支付宝扫码收款怎么弄(支付宝扫码收款记录在哪看)

    支付宝扫码收款怎么弄(支付宝扫码收款记录在哪看)

  • 华为手机怎么关闭最近使用(华为手机怎么关空调)

    华为手机怎么关闭最近使用(华为手机怎么关空调)

  • alpaloo华为什么牌子(华为alpaloo手机多少钱)

    alpaloo华为什么牌子(华为alpaloo手机多少钱)

  • 电脑怎么设置密码(电脑怎么设置密码win11)

    电脑怎么设置密码(电脑怎么设置密码win11)

  • linux查看文件的后几行(文件查看 如何显示最后几行 ,某几行)(linux查看文件的权限)

    linux查看文件的后几行(文件查看 如何显示最后几行 ,某几行)(linux查看文件的权限)

  • 【图文教程】怎么在Mac OS X 10.10与 iOS8 之间使用Handoff?(教程图怎么做)

    【图文教程】怎么在Mac OS X 10.10与 iOS8 之间使用Handoff?(教程图怎么做)

  • 销项税大于进项税时怎么处理
  • 税务迁移麻烦吗
  • 含税销售额换算成不含税销售额的公式是什么?
  • 动产增值税可以抵扣吗
  • 代收代付保险费的差额可以放入营业外收入么
  • 油费可以抵扣进项税额
  • 现金股利缴纳个人所得税
  • 报税界面
  • 通过应交税费核算的
  • 蔬菜批发销售免税政策
  • 研发机构认定条件
  • 企业员工应付未付的工资该如何写其会计分录?
  • 停车场收入怎么做账
  • 什么发票可以用来抵税
  • 差额纳税销项税额抵减
  • 未办理三证合一营业执照会注销吗
  • 哪些项目可以不报建
  • 商贸公司购买货物会计分录
  • 小微企业贷款利息补贴
  • 股票现金分红
  • 房产税先征后免会计处理
  • 购货未能取得发票怎么办
  • 如果辞职了,能一次性拿到钱吗?
  • 现金日记账本月合计图
  • 公司没有发票的做内账,那么支付款从哪里来
  • 个人投资到企业的资金入什么科目
  • 出租车收税吗
  • 代理进口增值税客户不抵扣,进出口公司可以抵扣吗
  • 光纤测速网速测试
  • php7 ??
  • 在建工程进项税额转出
  • 公司购买货物
  • ant design pro项目构建纯净版
  • 试用期不交金后面补缴
  • 按实际成本结转6日和7日的材料采购成本
  • php格式的图片
  • php preg_quote
  • 网页设置怎么在css中设置
  • ios14.5ipad
  • 子公司收购母公司另一子公司会计处理
  • 从财务报表中能看出什么
  • 临时工享受的福利有哪些
  • 公司的实收资本是什么意思
  • python 覆盖
  • 高效刷题app
  • 丢失增值税发票已报税证明单取消
  • 将string类型数组转化成int
  • 个税专项附加扣除标准调整
  • 退伍军人9000补助
  • 费用暂估是什么意思
  • 机票报销是什么发票
  • 债务重组与资产重组
  • 建筑施工企业检查的内容包括什么
  • 商品销售方式
  • 企业购手机的发票在哪里
  • 应付职工薪酬如何进行会计处理
  • 企业取得的土地使用权用于自行开发建造厂房
  • sql server如何修改表名
  • mysql “ Every derived table must have its own alias”出现错误解决办法
  • freebsd10安装教程
  • 如何关闭windows程序
  • xp系统登录界面登录管理员账号
  • xbox无法连接无线网络
  • freebsd怎么安装
  • 深入了解XP中“最后一次正确配置”功能
  • ubuntu 15.04系统怎么安装qq?
  • hptasks.exe是病毒吗 是什么进程 hptasks进程说明
  • windows图片锁屏
  • 安卓手机屏幕不好使了怎么办
  • html5的全局属性
  • perl ne
  • cocos2dx创建项目
  • javascript怎么做
  • 深入理解typescript 豆瓣
  • android内存分析显示
  • PreferenceActivity、PreferenceFragment使用
  • python3中map
  • 日本消费税是什么
  • 雅阁交强险和车船税多少
  • 掌上海关怎么查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设