await muss in einer asynchronen Funktion verwendet werden. Jedes Mal, wenn wir wait verwenden möchten, müssen wir es also zuerst in der asynchronen Funktion definieren und dann diese asynchrone Funktion aufrufen.
Einfach so
async function fn(){}
fn()
Ein detaillierteres Beispiel
async function asy(){
// 获取当前城市的位置 获取热门城市 获取所有城市
const [resCityGuess,resCityHot,resCityAll]=await Promise.all([
this.http.get('api/v1/cities?type=guess'),
this.http.get('api/v1/cities?type=hot'),
this.http.get('api/v1/cities?type=group')
])
this.cityGuessName=resCityGuess.data.name;
this.cityGuessId=resCityGuess.data.id;
this.cityHot=resCityHot.data;
this.cityAll=resCityAll.data;
}
asy.apply(this);
Jedes Mal, wenn Sie „await“ verwenden, müssen Sie „async“ noch einmal definieren und es dann aufrufen. Ich finde diesen Vorgang etwas mühsam und repetitiv, daher möchte ich fragen, ob es eine Möglichkeit gibt, dieses Problem zu optimieren oder zu lösen.
async 可以不需要 await, await 必须依赖 async
async声明的函数返回值是Promise对象:
这样一个函数
使用await就需要放在async函数中
不使用await就当作Promise用
试试这样