es7学习教程之fetch解决异步嵌套问题的方法示例


Posted in Javascript onJuly 21, 2017

本文主要给大家介绍的是关于fetch API解决异步嵌套问题,下面话不多说,来一起看看详细的介绍:

我们之前学习了async和await,知道他是为了解决浏览器异步获取的的!但是我们用fetch api的话方法会更加的简单

async和await解决异步嵌套

function ajax(url){

   return new Promise(function(reslove,reject){
    let xmlHttp=new XMLHttpRequest();
    xmlHttp.open("get",url,true);
    xmlHttp.onreadystatechange=function(){
     if(xmlHttp.readyState==4&&xmlHttp.status==200){
      let data=JSON.parse(xmlHttp.responseText);
      reslove(data);
     }
    }
    xmlHttp.send(null);
   })
  }
  let uldom=document.getElementById("students");
  let url="http://192.168.0.57:8000/students.json";
  async function main(){
  let data=await ajax(url);
  
  let students=data;
  let html="";
  for(let i=0,l=students.length;i<l;i++){
   let name=students[i].name;
   let age=students[i].age;
   html+=`
   <li>姓名${name},年龄${age}</li>
   `
  }
  uldom.innerHTML=html;
  }
  main();

我们需要创建Promise函数来进行操作,如果我们用fetch解决的话,会更加的方便!

let uldom=document.getElementById("students");
  let url="http://192.168.0.57:8000/students.json";
  function main(){
   fetch(url).then(respone=>{
   return respone.json();
  }).then(data=>{
   let students=data;
   let html="";
   for(let i=0,l=students.length;i<l;i++){
    let name=students[i].name;
    let age=students[i].age;
    html+=`
    <li>姓名${name},年龄${age}</li>
    `
   }
   uldom.innerHTML=html;
  });
   
  }
  main();

不用创建Promise,直接调用then()是不是比上边更加的简单!

async、await结合fetch处理异步

let uldom=document.getElementById("students");
 let url="http://192.168.0.57:8000/students.json"; 
 async function main(){
  let respone = await fetch(url);
  let student = await respone.json();
  let html="";
  for (let i=0,l=students.length;i<l;i++){
   let name=students[i].name;
   let age=students[i].age;
   html+=`
   <li>姓名${name},年龄${age}</li>
   `
  }
  uldom.innerHTML=html;
  }
 main()

感觉是不是很简单!比上一种方法更加的简单。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
关于JQuery($.load)事件的用法和分析
Apr 09 Javascript
固定网页背景图同时保持图片比例的思路代码
Aug 15 Javascript
面向切面编程(AOP)的理解
May 01 Javascript
jquery模拟alert的弹窗插件
Jul 31 Javascript
举例讲解JavaScript中关于对象操作的相关知识
Nov 16 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
Feb 20 Javascript
jquery中validate与form插件提交的方式小结
Mar 26 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
Jun 08 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
Dec 01 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
Aug 07 Javascript
JavaScript中引用vs复制示例详析
Dec 06 Javascript
Mint UI实现A-Z字母排序的城市选择列表
Dec 28 Javascript
js图片轮播插件的封装
Jul 21 #Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 #Javascript
AngularJS中使用three.js的实例详解
Jul 21 #Javascript
Axios学习笔记之使用方法教程
Jul 21 #Javascript
Vue学习笔记进阶篇之函数化组件解析
Jul 21 #Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
Jul 21 #Javascript
基于JavaScript实现数码时钟效果
Mar 30 #Javascript
You might like
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
django基础学习之send_mail功能
2019/08/07 Python
Mac安装python3的方法步骤
2019/08/09 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
初中数学教学反思
2014/01/16 职场文书
对标管理实施方案
2014/03/12 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
小学四年级学生评语
2014/12/26 职场文书
运动会100米加油稿
2015/07/21 职场文书
国庆节主题班会
2015/08/15 职场文书
2016年国陪研修感言
2015/11/18 职场文书
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技