使用ES6的Promise完美解决回调地狱
//创建一个Promise实例,获取数据。并把数据传递给处理函数resolve和reject。需要注意的是Promise在声明的时候就执行了。
var getUserList=new Promise(function(resolve,reject){
$.ajax({
type:"get",
url:"http://vueshop.glbuys.com/api/home/index/slide?token=1ec949a15fb709370f",//第一次请求
success:function(data){
resolve(data);
},
error:function(error){
reject(error)
}
});
})
var getUserInfo=function(user){
return new Promise(function(resolve,reject){
console.log(user) //得到了上一个请求的用户id,下面根据用户id进行详情请求
$.ajax({
type:"get",
url:"http://vueshop.glbuys.com/api/home/index/slide?token=1ec949a15fb709370f?id="+user,//第二次请求想要的数据;
success:function(data){
resolve(data);
},
error:function(error){
reject(error)
}
});
})
}
getUserList.then(function(data){
var userid = JSON.parse(data).data[2].webs //调试的id存贮
return getUserInfo(userid)
}).then((datas)=>{
console.log(datas)
})