这篇文章主要介绍了es7之fetch如何解决异步嵌套问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
我们之前学习了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()
感谢你能够认真阅读完这篇文章,希望小编分享的“es7之fetch如何解决异步嵌套问题”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!