我正在进行代码更改以将.then(func {})样式代码转换为异步等待.
在我的示例中,从那时转换为异步等待,无法并行查询API并按请求完成的顺序处理它们,因为两个请求彼此独立.
这是两种语法之间的有效区别还是只是将两个函数分成两个单独的异步函数才能使它们并行运行?
升级前的示例代码:
componentDidMount() {
this.loadLists();
}
loadLists() {
console.log('start 1');
api.get('/url/1').then(function(r) {
console.log('done 1', r.body);
});
console.log('start 2');
api.get('/url/2').then(function(r) {
console.log('done 2', r.body);
});
}
//OUTPUT
//start 1
//start 2
//done 1
//done 2
Run Code Online (Sandbox Code Playgroud)
升级后的示例代码:
componentDidMount() {
this.getLists();
}
async getLists() {
console.log('start 1');
var res = await api.get('/url/1');
console.log('done 1', res.body);
console.log('start 2');
var res2 = await api.get('/url/2');
console.log('done 2', res2.body);
}
//OUTPUT
//start 1
//done 1
//start 2
//done 2
Run Code Online (Sandbox Code Playgroud)
编辑:
如果功能分为两个async …