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

  • word合并居中在哪个位置(word合并居中在哪里)

    word合并居中在哪个位置(word合并居中在哪里)

  • 几张照片怎么拼在一起发朋友圈(几张照片怎么拼成一张)

    几张照片怎么拼在一起发朋友圈(几张照片怎么拼成一张)

  • 淘宝提问为什么看不到(淘宝提问为什么发不出去)

    淘宝提问为什么看不到(淘宝提问为什么发不出去)

  • 苹果温度过高请冷却使用怎么解除(苹果温度过高请冷却但是手机不热)

    苹果温度过高请冷却使用怎么解除(苹果温度过高请冷却但是手机不热)

  • qq消息推送在哪里设置(qq消息推送在哪里打开)

    qq消息推送在哪里设置(qq消息推送在哪里打开)

  • 7plus机身多长(7plus机身多少厘米)

    7plus机身多长(7plus机身多少厘米)

  • 撤回的信息能在消息记录看到吗(撤回的信息在服务器保存多久)

    撤回的信息能在消息记录看到吗(撤回的信息在服务器保存多久)

  • 苹果11手机用一会儿发烫什么原因(苹果11手机用一会屏幕就变暗)

    苹果11手机用一会儿发烫什么原因(苹果11手机用一会屏幕就变暗)

  • 金立手机屏幕点不动(为什么金立手机屏幕有时候会突然失灵?)

    金立手机屏幕点不动(为什么金立手机屏幕有时候会突然失灵?)

  • 公牛插排有电流声(公牛插排电流声)

    公牛插排有电流声(公牛插排电流声)

  • mate30pro息屏显示费电吗

    mate30pro息屏显示费电吗

  • 关机未接电话可以查吗(关机 未接电话)

    关机未接电话可以查吗(关机 未接电话)

  • 微信怎么设置发消息拒收但是可以给别人发消息(微信怎么设置发信息来不显示内容)

    微信怎么设置发消息拒收但是可以给别人发消息(微信怎么设置发信息来不显示内容)

  • vivox30pro有什么颜色(vivox30pro有什么缺点)

    vivox30pro有什么颜色(vivox30pro有什么缺点)

  • 华为路由器ipv6需要打开吗(华为路由器ipv6无法获取前缀)

    华为路由器ipv6需要打开吗(华为路由器ipv6无法获取前缀)

  • 怎样将手机号码移入新手机(怎样将手机号码移出黑名单)

    怎样将手机号码移入新手机(怎样将手机号码移出黑名单)

  • 手机上的手电筒在哪找(手机上的手电筒不见了怎么找回)

    手机上的手电筒在哪找(手机上的手电筒不见了怎么找回)

  • 苹果无线耳机怎么用(苹果无线耳机怎么充电)

    苹果无线耳机怎么用(苹果无线耳机怎么充电)

  • 手机天气预报怎么更新(手机天气预报怎么不显示当前位置)

    手机天气预报怎么更新(手机天气预报怎么不显示当前位置)

  • vue中使用百度地图(vue使用百度地图三方标准地图清空后卡死)

    vue中使用百度地图(vue使用百度地图三方标准地图清空后卡死)

  • Python---time模块(pythontime模块)

    Python---time模块(pythontime模块)

  • Element-UI中的表单验证(element ui table)

    Element-UI中的表单验证(element ui table)

  • dedecms后台功能之自动摘要和分页介绍(dedecms建站操作)

    dedecms后台功能之自动摘要和分页介绍(dedecms建站操作)

  • 房地产销售增值税纳税义务发生时间
  • 进项税额转出会影响利润吗
  • 怎么从税控系统导出明细
  • 退回以前年度教育附加费
  • 收取境外技术服务费如何
  • 个税申报系统跟工资表累计扣除数不一致怎么办
  • 个人收外汇有限制吗
  • 销售废旧物品的账务处理
  • 物业公司需要向哪个部门缴费
  • 非正常损失允许税前扣除吗
  • 《减免所得税优惠明细表》
  • 电子银行承兑汇票有风险吗
  • 酒店式公寓配套服务包括哪些
  • 宽带合同要交印花税吗
  • 应收账款手工核算方法
  • 公司清算补偿工资标准
  • 加盟费需要缴纳多少税
  • 分期收款什么时候交税
  • 委托付款分录
  • 苹果电脑重装系统无法连接服务器
  • 坏账准备冲回是借方还是贷方
  • 一般纳税人减免性质代码怎么填写
  • win10如何设置一键还原系统
  • 3%减按2%征收增值税政策
  • 设置系统自动更新一般通过什么窗口
  • php数组函数面试题
  • 建筑劳务公司计提人工劳务费需要工资表吗?
  • 加入申请理由怎么写
  • 调整多计提企业利润
  • LIO-SAM学习与运行测试数据集
  • php 进程间通信
  • 谷歌浏览器被hao123锁定改不了
  • vue 路由
  • 小程序项目开发流程
  • php的urlencode
  • hash操作
  • 小规模纳税人减按1%账务处理
  • 租赁房屋开具发票商品名称
  • 物业公司属于生活性服务业吗
  • 待处理财产损溢借方是增还是减
  • 织梦cms怎么样
  • python分布式执行框架Ray的介绍
  • python中的logging记录日志
  • 租赁公司一般都有什么税
  • 织梦怎样实现文件上传
  • sql2012 win10
  • 工业企业成本如何确定
  • sqlserver数据库作业
  • 辅助账簿属于会计档案吗
  • 出纳账务处理分录
  • 确认资产减值损失后可以转回的
  • 其他应收款收不回来怎么写情况说明
  • 去银行更换帐户需要什么
  • 年底结账会计要怎么做账
  • 公司抽奖的成本怎么算
  • 暂估收入怎么做分录
  • mysql基本介绍
  • linux中sed详细用法
  • ntfs分区的优点
  • os x yosemite dp6下载 os x 10.10 dp6官方下载地址
  • linux rmdir
  • ctrl+的作用
  • win1020h2正式版下载
  • realpopup.exe - realpopup是什么进程
  • WIN7系统如何禁止特定软件在线升级
  • win1020h2版本千万别更新
  • win8系统忘记密码电脑重置
  • 不格式化更改盘符
  • Zen Coding css,html缩写替换大观 快速写出html,css
  • cocos2dx 3.0 quick lua schedler
  • opencv与pil
  • jsforeach循环遍历数组
  • edittext弹出软键盘
  • js设计模式书
  • python给定某数字a
  • unity延迟执行方法
  • unity读取文本文件
  • vue2.x
  • 报税时一直显示申报中
  • 江苏省国税客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设