- 连续的异步请求,下一步的异步请求依赖于前一步的异步请求结果
你是怎么理解 async 和 await 的?
https://juejin.im/post/596e142d5188254b532ce2da
假如有A、B、C三个异步请求,异步请求C依赖于异步请求A和B的结果(即A和B完成后再发起C),那么你会如何实现它?
- Promise就是解决多个异步请求的问题;是ES6提供的一个对象,用来传递异步操作的信息.
- Promise有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和 Rejected(已失败).
具体代码如下:
function a(){return new Promise((res,rej) => {$.ajax({url:"a",type: "GET",success:function(){res(dataA);}})});
}
function b(){return new Promise((res,rej) => {$.ajax({url:"b",type: "GET",success:function(){res(dataB);}})});
}
function c(dataA,dataB){return new Promise((res,rej) => {$.ajax({url:"c",type: "POST",success:function(dataA,dataB){res();}})});
}
$("#btn").click(function(){a().then((dataA) => {c(data);}).b().then((dataB){c(data);})
})