使用ES6的Promise完美解决回调地狱

 1 直到遇见了Promise,它完美优雅的解决了回调地狱难题!
 2 
 3  
 4 
 5 //创建一个Promise实例,获取数据。并把数据传递给处理函数resolve和reject。需要注意的是Promise在声明的时候就执行了。
 6 var getUserInfo=new Promise(function(resolve,reject){
 7 $.ajax({
 8 type:"get",
 9 url:"index.aspx",
10 success:function(data){
11 if(data.Status=="1"){
12 resolve(data.ResultJson)//在异步操作成功时调用
13 }else{
14 reject(data.ErrMsg);//在异步操作失败时调用
15 }
16 }
17 });
18 })
19 //另一个ajax Promise对象,
20 var getDataList=new Promise(function(resolve,reject){
21 $.ajax({
22 type:"get",
23 url:"index.aspx",
24 success:function(data){
25 if(data.Status=="1"){
26 resolve(data.ResultJson)//在异步操作成功时调用
27 }else{
28 reject(data.ErrMsg);//在异步操作失败时调用
29 }
30 }
31 });
32 })
33 //Promise的方法then,catch方法
34 getUserInfo.then(function(ResultJson){
35 //通过拿到的数据渲染页面
36 }).catch(function(ErrMsg){
37 //获取数据失败时的处理逻辑
38 })
39 //Promise的all方法,等数组中的所有promise对象都完成执行
40 Promise.all([getUserInfo,getDataList]).then(function([ResultJson1,ResultJson2]){
41 //这里写等这两个ajax都成功返回数据才执行的业务逻辑
42 })

猜你喜欢

转载自www.cnblogs.com/huaifeidejiushu/p/9035189.html