位置: IT常识 - 正文

ES6中 Promise 概念、基本用法和封装ajax(json数据使用)(es6 promise是什么)

编辑:rootadmin
ES6中 Promise 概念、基本用法和封装ajax(json数据使用)

目录

一、定义

1.对象的状态不受外界影响。

2.一旦状态改变了就不会在变,也就是说任何时候Promise都只有一种状态。

二、基础用法(Proimse.prototype.then()、Promise.prototype.catch())

Proimse.prototype.then()

Promise.prototype.catch()

三、json的使用(需要先了解)

四、ajax的基础使用

1.基本流程

2.基本使用

3.用promise封装


一、定义

推荐整理分享ES6中 Promise 概念、基本用法和封装ajax(json数据使用)(es6 promise是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:promise es6的作用,promise es6的作用,es6的promise有几种状态,es6promise用法例子,es6 promise是什么,es6的promise的用法,es6的promise的用法,es6的promise有几种状态,内容如对您有帮助,希望把文章链接给更多的朋友!

Promise是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件。ES6统一了用法,并原生提供了Promise对象。作为对象,Promise有一下两个特点:

1.对象的状态不受外界影响。

Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败),一旦发生改变就只有一种状态:Pending -> Fulfilled  Pending -> Rejected。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。

2.一旦状态改变了就不会在变,也就是说任何时候Promise都只有一种状态。

Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected。只要这两种情况发生,状态就凝固了,不会再变了,会一直保持这个结果,这时就称为 resolved(已定型)。

二、基础用法(Proimse.prototype.then()、Promise.prototype.catch())ES6中 Promise 概念、基本用法和封装ajax(json数据使用)(es6 promise是什么)

Promise 通过new关键词 回调函数有两个形参 第一个:resolve(成功) reject(失败的方法)resolve reject这两个可以改变Promise实例的状态

Proimse.prototype.then()

它的作用是为 Promise 实例添加状态改变时的回调函数。补充可以链式。

Promise.prototype.catch()

用于指定发生错误时的回调函数。

//Promise 通过new关键词 回调函数有两个形参 第一个:resolve(成功) reject(失败的方法)//resolve reject这两个可以改变Promise实例的状态const MyPormise = new Promise((resolve,reject)=>{let flag = true;if(flag){//成功的状态resolve("成功的值");}else{//失败状态reject("失败的值");}});//获取 Promise的值,有两个参数,第一个参数:回调函数显示成功的状态,第二个是显示失败的状态MyPormise.then( //Proimse.prototype.then()resolve=>console.log(resolve),reject=>console.log(reject))//MyPormise.catch( //Promise.prototype.catch()//reject=>console.log(reject)//) 三、json的使用(需要先了解)let Person = '{"realname":"张三","age":19}';//对象的json数据格式console.log(JSON.parse(Person));let persons = '["张三","李四"]' //数组的json数据格式console.log(JSON.parse(persons));四、ajax的基础使用1.基本流程

用get打开请求地址

发送请求send()

监听状态的变化,从而获取数据

2.基本使用const ajax = new XMLHttpRequest();// 1.用get打开请求地址ajax.open("GET","http://127.0.0.1:8848/web2209/ES6/test.json");// 2.发送请求ajax.send();//3.监听状态的变化,从而获取数据ajax.onreadystatechange = ()=>{if(ajax.readyState == 4){ //xml的状态if(ajax.status==200){//代表成功const data = JSON.parse(ajax.response);console.log(data);}else{console.log("请求失败");}}}3.用promise封装

封装函数可以方便下一次的调用

function sendajax(url){return new Promise((resolve,reject)=>{const Obj = new XMLHttpRequest();Obj.open("GET",url);Obj.send();Obj.onreadystatechange = ()=>{if(Obj.readyState==4){if(Obj.status==200){//http状态码const data = JSON.parse(Obj.response);resolve(data);}else{reject("数据请求失败...");}}}})}const MyPromise = sendajax("http://127.0.0.1:8848/web2209/ES6/test.json");MyPromise.then((resolve)=>{console.log(resolve);})
本文链接地址:https://www.jiuchutong.com/zhishi/300363.html 转载请保留说明!

上一篇:html多个好看的背景动态效果(附源码)(html多页面)

下一篇:这几个SQL语法的坑,你踩过吗(这几个sql语法的区别)

  • 小米手表color2怎么取消久坐提醒(小米手表color2怎么样)

    小米手表color2怎么取消久坐提醒(小米手表color2怎么样)

  • 智慧团建报到时间在哪里查(智慧团建报到时间是什么意思)

    智慧团建报到时间在哪里查(智慧团建报到时间是什么意思)

  • 华为nova7如何隐藏返回键(华为nova7如何隐藏软件)

    华为nova7如何隐藏返回键(华为nova7如何隐藏软件)

  • 支付宝蚂蚁森林换树的形象怎么弄(支付宝蚂蚁森林能量对照表)

    支付宝蚂蚁森林换树的形象怎么弄(支付宝蚂蚁森林能量对照表)

  • 退出当前使用的钉钉才能继续(退出当前使用的数据库)

    退出当前使用的钉钉才能继续(退出当前使用的数据库)

  • 怎么隐藏零钱通的钱数显示(怎么隐藏零钱通里面的钱数)

    怎么隐藏零钱通的钱数显示(怎么隐藏零钱通里面的钱数)

  • ipad 1474是ipad几(ipad 1416是ipad几)

    ipad 1474是ipad几(ipad 1416是ipad几)

  • 充电时手机发热怎么回事(14promax充电时手机发热)

    充电时手机发热怎么回事(14promax充电时手机发热)

  • ipad air2可以用pencil吗(ipad air2可以用pencil笔吗)

    ipad air2可以用pencil吗(ipad air2可以用pencil笔吗)

  • 换了尾插扬声器不响了(尾插影响扬声器吗)

    换了尾插扬声器不响了(尾插影响扬声器吗)

  • 腾讯不能投屏到电视机(腾讯不能投屏到投影仪)

    腾讯不能投屏到电视机(腾讯不能投屏到投影仪)

  • 系统崩了怎么办啊(系统崩了怎么办百度云)

    系统崩了怎么办啊(系统崩了怎么办百度云)

  • 通过qq可以查到对方位置吗(通过qq可以查到微信号吗)

    通过qq可以查到对方位置吗(通过qq可以查到微信号吗)

  • 华为手机保养两次是什么意思(华为手机保养几次)

    华为手机保养两次是什么意思(华为手机保养几次)

  • 手机应用商店打不开是怎么回事(手机应用商店打开是白色画面怎么办)

    手机应用商店打不开是怎么回事(手机应用商店打开是白色画面怎么办)

  • 红米k20pro掉水里了怎么办(红米k20pro掉水里一小时)

    红米k20pro掉水里了怎么办(红米k20pro掉水里一小时)

  • 电信路由器默认密码是什么(电信路由器默认地址)

    电信路由器默认密码是什么(电信路由器默认地址)

  • 零钱明细删掉怎么恢复(零钱明细删除后能恢复吗)

    零钱明细删掉怎么恢复(零钱明细删除后能恢复吗)

  • 空调1匹适合多少平方(空调1匹适合多大房间)

    空调1匹适合多少平方(空调1匹适合多大房间)

  • 小米9怎么设置联系人头像(小米9怎么设置微信来信息不显示内容)

    小米9怎么设置联系人头像(小米9怎么设置微信来信息不显示内容)

  • 苹果xr手机铃声为什么越来越小(苹果xr手机铃声响一声后小了)

    苹果xr手机铃声为什么越来越小(苹果xr手机铃声响一声后小了)

  • 苹果11分辨率多少(苹果11分辨率多大)

    苹果11分辨率多少(苹果11分辨率多大)

  • 怎么设置支付宝定位(怎么设置支付宝打开需要密码)

    怎么设置支付宝定位(怎么设置支付宝打开需要密码)

  • JavaWeb之Cookie详解(一)(java cookie)

    JavaWeb之Cookie详解(一)(java cookie)

  • 增值税申报表上的销售收入
  • 车辆购置税会计科目怎么做账
  • 收据盖发票专用章后果
  • 税率开错了影响征税吗
  • 长期待摊费用如何摊销计算
  • 国税地税合并后叫什么名称
  • 待抵扣进项税什么时候抵扣
  • 建筑公司收到材料发票
  • 往来票据怎么填写
  • 建筑施工企业会计制度
  • 抵押贷款买房子合适还是商业贷款合适
  • 应收账款增值税专用发票
  • 广告宣传怎么开发票
  • 股东债权转资本公积利和弊
  • 企业购买汽车时需要交哪些税?
  • 福利费申报个人所得税该如何进行?
  • 关于财产保险公司的论文
  • 公司的钱怎么提现
  • 小规模纳税人增值税超过30万怎么纳税
  • 子公司和母公司可以一起投标吗
  • 股份利润怎么分
  • 服务费计入什么收入
  • 残联备案还能补缴社保吗
  • 自己生产的水泥用于建造厂房
  • 费用报销交通费
  • 事业单位授权支付可以取现吗
  • win1020h2更新0x800f081f
  • PHP+jQuery翻板抽奖功能实现
  • 广告公司发生的费用要计入主营业务成本吗
  • win10预览版是什么意思
  • 应缴纳个人所得税的是托儿补助费
  • 原始凭证必须具备的基本要素
  • php运用的技术php开发有哪些实用的技术
  • 注销后怎么补缴社保
  • 税务登记投资总额和注册资本一样吗
  • php swoole框架
  • yolov4tiny网络结构
  • idea配置meaven
  • vue关闭路由
  • css常见的选择器有哪几种
  • 微信php开发教程
  • jsp标签大全
  • 玩转mongodb4.0从入门到实践
  • sqlserver存储过程声明变量
  • 母公司给子公司借款要利息吗
  • 小规模纳税人增值税专用发票税率
  • 应收账款余额百分比法怎么算
  • 分红需要满足的条件包括
  • 销售原材料的差价怎么算
  • 老板让我做分公司负责人能接受么
  • 营利性与非营利性的关系
  • 政府专款专用
  • 价税分离购销合同模板
  • 开票信息指的是买方还是卖方
  • 发票作废才能验旧吗
  • 收到现金货款存入银行会计分录
  • 生产成本怎么结转主营业务成本分录
  • mysql分表命令
  • windows server 2008 企业版
  • 高效管理者的三大技能 罗伯特卡茨
  • linux vps 教程
  • Aero glass for Win8.1黑屏/不兼容弹窗的解决方法介绍
  • WIN10怎么彻底删除works2
  • win10系统自带输入法怎么关闭
  • cocos2dx官方教程
  • 如何用jquery
  • JavaScript中常用的数据类型有
  • js 正则replace
  • 前端跑马灯实现
  • 打不死的小强励志词句
  • python中的魔法函数
  • python dask
  • 小规模企业所得税怎么算
  • 研发费用加计扣除75%还是100%
  • 锦江区税务局搬迁新地址
  • 姓名章加不加印字
  • 社保诚信申报怎么取消
  • 国家税务局查询发票
  • 我国现行税率分
  • 去银行签贷款合同后多久办过户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设