当我们用$.ajax去请求有依赖的多个数据的时候,代码编写会形成漏斗形状的结构,代码可读性差,可以使用es6提供的Promise
promise概述: Promise是异步编程的一种解决方案,从语法上讲,Promise是一个对象,从它可以获得异步操作的消息
使用promise有以下好处:
可以避免多层异步调用嵌套问题(回调地狱);
promise对象提供了简洁的API.使得控制异步操作变得更容易
promise:承诺,在es6中promise可以解读为承诺将来会执行
<script type="text/javascript">
var p = new Promise(function(resolve,reject){
setTimeout(function(){
var flag = true;
if(flag){
resolve("hello");
}
else{
reject("caonima");
}
},100);
});
p.then(function(data){
console.log(data)
}),
function(info){
console.log(info)
}
</script>
fetch api
fetch api 是基于promise的,可以认为它是一个ajax的升级版