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

  • airpods开盖绿灯一直闪(airpods开盖绿灯不亮)

    airpods开盖绿灯一直闪(airpods开盖绿灯不亮)

  • 小米手机有没有体温计(小米手机有没有双系统)

    小米手机有没有体温计(小米手机有没有双系统)

  • 腾讯退款多久到账(腾讯退款多久到账户)

    腾讯退款多久到账(腾讯退款多久到账户)

  • 小米蓝牙耳机只能连接一个(小米蓝牙耳机只能连接一个怎么办)

    小米蓝牙耳机只能连接一个(小米蓝牙耳机只能连接一个怎么办)

  • 电脑出现americanmegatrends怎么办(电脑出现americanmegatrends怎么办图片)

    电脑出现americanmegatrends怎么办(电脑出现americanmegatrends怎么办图片)

  • 淘宝封号会出现什么情况(淘宝封号有什么坏处)

    淘宝封号会出现什么情况(淘宝封号有什么坏处)

  • 保修期内苹果电池损耗多少可以免费更换(保修期内苹果电脑进水维修多少钱)

    保修期内苹果电池损耗多少可以免费更换(保修期内苹果电脑进水维修多少钱)

  • 关联qq有什么坏处(关联qq有什么好处)

    关联qq有什么坏处(关联qq有什么好处)

  • 手机号很久不用会自动注销吗(手机号很久不用现在有别人在用)

    手机号很久不用会自动注销吗(手机号很久不用现在有别人在用)

  • 抖音不登录看别人有记录吗(抖音不登录看别人作品会被发现吗?)

    抖音不登录看别人有记录吗(抖音不登录看别人作品会被发现吗?)

  • 华为深色模式的作用(华为深色模式什么意思)

    华为深色模式的作用(华为深色模式什么意思)

  • 苹果序列号g0开头什么意思(苹果序列号g0开头是哪里生产的)

    苹果序列号g0开头什么意思(苹果序列号g0开头是哪里生产的)

  • 爱奇艺怎么下载视频(爱奇艺怎么下载视频到手机相册)

    爱奇艺怎么下载视频(爱奇艺怎么下载视频到手机相册)

  • 读取本机识别码是什么意思(需要电话读取本机识别码)

    读取本机识别码是什么意思(需要电话读取本机识别码)

  • qq击掌什么意思(qq击掌失败是怎么回事)

    qq击掌什么意思(qq击掌失败是怎么回事)

  • 电脑怎么创建一个新的用户(电脑怎么创建一个新的文档)

    电脑怎么创建一个新的用户(电脑怎么创建一个新的文档)

  • 苹果11怎么关掉碰屏就亮(苹果11怎么关掉省电模式)

    苹果11怎么关掉碰屏就亮(苹果11怎么关掉省电模式)

  • 笔记本开不了机怎么办(笔记本开不了机电源闪一下又灭了)

    笔记本开不了机怎么办(笔记本开不了机电源闪一下又灭了)

  • 苹果11promax是双卡的吗(苹果11pro max是双4g吗)

    苹果11promax是双卡的吗(苹果11pro max是双4g吗)

  • 红米pro备忘录在哪里(redmi备忘录在哪)

    红米pro备忘录在哪里(redmi备忘录在哪)

  • iphone11防水么(ihone11防水吗)

    iphone11防水么(ihone11防水吗)

  • windows10无法完成安装(windows10无法完成格式化DVD)

    windows10无法完成安装(windows10无法完成格式化DVD)

  • wps投影宝有什么功能(wps投影宝只能放ppt吗)

    wps投影宝有什么功能(wps投影宝只能放ppt吗)

  • 小米手机后台运行在哪设置

    小米手机后台运行在哪设置

  • 阿里旺旺怎样远程(阿里旺旺怎么和卖家联系)

    阿里旺旺怎样远程(阿里旺旺怎么和卖家联系)

  • windows11扩展卷灰色解决方法(电脑扩展卷是灰色的的怎么办)

    windows11扩展卷灰色解决方法(电脑扩展卷是灰色的的怎么办)

  • win7系统上网络中断怎么办?(win7系统网络连接出现红叉)

    win7系统上网络中断怎么办?(win7系统网络连接出现红叉)

  • 个人出售普通住宅应当缴纳哪些税
  • 信息技术服务增值税
  • 什一税是什么意思?
  • 表见代理通俗
  • 合并报表中怎么抵消投资性房地产
  • 亏损企业要做业务处理吗
  • 去年漏记了收入,可以记今年吗
  • 应收留抵税额退税款科目是资产类
  • 公司向个人借入资金的风险
  • 境内机构经常项目外汇账户
  • 民办幼儿园所得税优惠政策
  • 施工费增值税税率是9%
  • 企业购买结构性存款会计处理
  • 待摊费用做账
  • 事业收入和经营收入的联系
  • appdata如何移动
  • 如何win10家庭版升级专业版
  • 公司人格否认制度构成要件
  • PHP:pg_query()的用法_PostgreSQL函数
  • 职工教育经费超过扣除限额的时候调增还是调减
  • kb4592440安装失败
  • 文竹发黄怎么挽救?
  • 赞助支出计入应纳税所得额吗
  • 有限公司股权转让怎么办理流程
  • hbuilderx的使用视频
  • 企业购买银行理财
  • vue使用教程
  • 投资担保公司的钱都去哪了
  • ue4ui界面制作
  • php不同用户登录不同页面
  • vgreduce --removemissing
  • 企业实缴各类税金的总额
  • 线程池中的一个线程执行完一个任务后
  • windows7基本使用教程
  • python里int函数
  • dedecms采集怎么用
  • 土地出让金抵扣进项税
  • 成本费用利润率是什么指标
  • 收入不足3000
  • 厂房监理要点
  • 应收账款周转率越高越好吗
  • 归还银行贷款利息计入
  • 投资性房地产用三栏式吗
  • 账上的进项税额比申报多了怎么调账
  • 股东分红需要
  • 安全生产费计提和使用的账务怎么处理
  • 股东增资有哪几种方法
  • 明细分类账三栏式
  • 会计的几种折旧类型
  • 搭赠商品如何开票
  • 企业清算主要清算哪些项目?
  • 商业企业注销应检查哪方面的问题
  • bios设置bios密码
  • dmidecode命令
  • linux命令合集
  • linux 更新系统
  • windowsaudio服务不存在或已删除
  • supporter5.exe - supporter5是什么进程
  • win7winxp双系统怎么装
  • linux日志内容
  • CentOS 6.x 到 CentOS 7 的升级过程
  • jetcar.exe - jetcar是什么进程 有什么作用
  • windows适配器未连接
  • 装载win10系统
  • opengl画实体
  • js设置窗口位置
  • msoobe命令
  • 苹果macos安装
  • Android 自定义控件
  • jquery当前时间
  • jquery的核心理念
  • 个税更正申报后,少缴纳的税款如何退回
  • 年终绩效奖金发放方案
  • 泌阳县国土资源局崔超
  • 杭州市税务局总局地址
  • 内蒙古税务局发票认证
  • 事业单位大额资金拨付需要什么报账材料
  • 营改增后土地增值税
  • 国考报四川的去哪考
  • 应缴增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设