先執行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()
})