我们项目中经常遇到这样的业务需求,请求b接口之前必须先请求另外一个a接口并把a接口的返回接口作为参数去请求b接口,以前我都是嵌套请求的,但是最近有一个嵌套三层的,让我不得不思考怎么写更简便的达到需求,下面说一下如何使用ES6的新特性async await进行异步处理
// 这是两个请求,请求b接口需要先请求a接口并将a的返回数据作为参数请求b接口
function aa(){
return axios.get('json/aa.json');
}
function bb(params){
return axios.get('json/bb.json',{params})
}
// 借助async await
async function cc(){
let code = await aa();
console.log(code.data.code);
if(code.data.code == 1){
var params = {
code:code.data.code
}
let list = await bb(params);
console.log(list.data.list);
}
}
cc();
当然也可以加上异常处理
async function cc(){
try{
let code = await aa();
console.log(code.data.code);
if(code.data.code == 0){
var params = {
code:code.data.code
}
let list = await bb(params);
console.log(list.data.list);
}
}catch(err){
console.log(err);
}
}
cc();
网友评论