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 })
使用ES6的Promise完美解决回调地狱
猜你喜欢
转载自www.cnblogs.com/huaifeidejiushu/p/9035189.html
今日推荐
周排行