Promise--异步请求

先执行getData1,在执行getData2

let getData1=new Promise(function(resolve,reject){
    $.ajax({
        type:"get",
        url:".../getData1",
        success:function(data){
            if(data.state=="200"){
                resolve(data.data) // 在异步操作成功时调用
            }else{
                reject(data.msg); //在异步操作失败时调用
            }
        }
    });
})
let getData2=new Promise(function(resolve,reject){
    $.ajax({
        type:"get",
        url:".../getData2",
        success:function(data){
            if(data.state=="200"){
                resolve(data.data) // 在异步操作成功时调用
            }else{
                reject(data.msg); //在异步操作失败时调用
            }
        }
    });
})
getData1.then(function(res){
  return getData2(res)
}).then(function(res){
  console.log(res)
}).catch(function(err){
  console.log(err)
})

先执行getData1和getData2,在执行getData3

let getData3=new Promise(function(resolve,reject){
    $.ajax({
        type:"get",
        url:".../getData3",
        success:function(data){
            if(data.state=="200"){
                resolve(data.data) // 在异步操作成功时调用
            }else{
                reject(data.msg); //在异步操作失败时调用
            }
        }
    });
})

Promise的all方法,等数组中的所有promise对象都完成执行

Promise.all([getData1,getData2]).then(function([ResultJson1,ResultJson2]){
    //这里写等这两个ajax都成功返回数据才执行的业务逻辑
  getData3()
})

猜你喜欢

转载自blog.csdn.net/qq_39517820/article/details/106295751
今日推荐