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

  • 个人接私活需要开票,可以让别的公司帮忙开票吗?
  • 交通运输印花税怎么申报
  • 工程项目估算收入要缴税吗
  • 领用包装物的会计分录
  • 计提 增值税
  • 工资代扣的工会经费怎么做账
  • 会计凭证前面放什么
  • 私募基金管理公司
  • 固定资产清理期末可以有余额吗
  • 公司注销时发现很多年前多发了员工的工资
  • 借款可以转注资款吗
  • 失控发票怎么做账处理
  • 累计折旧属于什么
  • 收到个人缴纳的办证费
  • 去办税大厅清卡需要带什么
  • 股东和原始股的区别
  • windows11进入桌面黑屏
  • 手机超过1万元有必要买吗
  • 把u盘变成光盘模式
  • 已经抵扣增值税专用发票对方要换票怎么办
  • 苹果手机下载爱思极速版有什么影响
  • 哪家银行理财产品收益率高
  • php-cgi
  • b250主板最好的cpu是哪一款
  • 微信小程序 h5页面打不开
  • ai绘画图片
  • c#怎么使用
  • 查询命令的操作步骤
  • 哪些研发费用可以资本化
  • 青苗补偿费归谁所有
  • 公司购买电脑怎么做会计分录
  • 个体工商户超过100万怎么缴税
  • 资产负债表不平衡能结账吗
  • 简易计税项目可抵扣吗
  • 公司代垫款如何记账
  • 在vue项目如何引入异步组件?
  • 公司业务订金怎么退
  • 所得税预缴申报表资产总额怎么填
  • 母公司收取子公司利润
  • 做账时实收资本减少应该记在那一栏
  • 固定资产处置损益怎么算
  • 发票当月没开
  • 最新版的电子发票没有章
  • 下乡扶贫可以报什么岗位
  • 其他应收款如何做坏账处理
  • 进项税转出税额
  • 资产处置损益如何在利润表中体现
  • 本年利润的会计科目代码
  • 一般纳税人企业所得税政策最新2023
  • 建账需要买哪些会计用品
  • where条件加判断
  • git checkout撤销
  • mac os x 10.12.2 Beta1怎么升级?macOS Sierra 10.12.2 Beta升级图文教程
  • winpe安装系统教程
  • linux里top
  • 怎么给网络设置防火墙
  • linux awk -v
  • daio.dll 病毒
  • 苹果预计10.1-15号到能准确吗
  • win10系统ie浏览器不见了
  • win10更新中重启会怎么样
  • win10声音文件
  • linux怎么把网卡down
  • win7系统怎么操作
  • pe,翻译
  • jquery常用操作
  • nodejs与springboot结合
  • css图片样式网站
  • jquery源码下载
  • jquery动态添加样式
  • 可交互原型是什么
  • 猫的喵喵
  • unity平面透明
  • service与activity数据交互
  • python中子类继承父类的静态方法吗
  • jquery获取url地址
  • 山东潍坊昌邑房产网
  • 北京车位过户手续费多少
  • 上海税务机关代码查询
  • 国家税务总局发票下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设