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()
感觉是不是很简单!比上一种方法更加的简单。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。