位置: 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语法的区别)

  • 什么是工程销项表
  • 税务师考试税法一章节
  • 没有增值税专用发票开具证明
  • 购入生产设备的增值税计入成本吗
  • 关联企业的费用包括
  • 金税盘如何查看开票机号
  • 投资收益分红需要交企业所得税吗
  • 工会经费0.008申报
  • 个人工资薪金所得税怎么查
  • 房地产企业预售阶段企业所得税
  • 上年度没有计提企业所得税
  • 工程检测费占工程金额多少
  • 股东用技术股出售股票
  • 无形资产土地的入账价值包括哪些
  • 政府扶持资金是什么意思
  • 税控盘抵扣政策依据
  • 修理费要开税控清单吗
  • 软件企业增值税即征即退会计处理
  • 如何判断境内企业所得税
  • 收款收据可以做账么
  • 金蝶财务软件录入凭证
  • 一般纳税人怎么查询
  • 企业债券收入要在所得税前扣除吗
  • 金蝶k3固定资产反结账
  • 增值税申报表附表二填表说明
  • 工会上缴40%的经费法律依据
  • 冲红发票会计分录大全
  • 期初摊余成本是初始入账价值吗
  • 电脑自我诊断
  • 行政事业单位公车使用制度
  • PHP开发之归档格式
  • linux 数字加减
  • 跨年的费用怎么做账
  • 利息股息红利所得属于综合所得吗
  • PHP:oci_fetch_all()的用法_Oracle函数
  • 财务处理程序的方法
  • 出口商品怎么做分录
  • 无效借款合同自被确认为无效之日起无效
  • 边角料是否计入生产成本
  • 个体工商户年报逾期怎么办
  • 蓝牙11
  • SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算的概念
  • 事业单位结余资金管理办法
  • 增值税进项税加计抵减
  • sqlserver的replace
  • 直接计入所有者权益的利得和损失,影响当期损益
  • 公司收到拆迁补偿金,于评估公司的区别
  • 小规模纳税人出租不动产优惠政策
  • 跨月发票红冲还要交税吗
  • 跨月发票红冲怎么做账务处理
  • 企业购买房产怎么记账
  • 房产税减免退税怎么操作
  • 如何查询对方是否起诉离婚
  • 工程没钱也没有工资
  • 房地产 监控
  • mysql三种安装方式
  • win8.1所有程序在哪里
  • windows无法启动wlanautoconfig服务
  • win10禁用windows键
  • 关闭空闲的ide通知怎么写
  • 高县土火锅历史介绍
  • centos7 network
  • windows7无法激活怎么解决方法
  • win8任务管理器未响应怎么解决
  • windows10右键菜单
  • 开关光驱是平移还是旋转
  • linux检测硬件
  • replace函数怎么替换
  • javascript的数组可以存放任何类型
  • javascript中attribute和property的区别详解
  • jquery判断控件是否存在
  • Node.js中的什么模块是用于处理文件和目录的
  • 安卓微博评论界面图片
  • css控制文字换行
  • js入门基础教程
  • python中的文件
  • 基于javascript的毕业设计
  • 国际货运代理业务范围
  • 督察综合服务中心是干什么的
  • 国税地税征管体制改革方案全文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设