await doit être utilisé dans une fonction asynchrone, donc chaque fois que nous voulons utiliser wait, nous devons d'abord le définir dans la fonction asynchrone, puis appeler cette fonction asynchrone.
Juste comme ça
async function fn(){}
fn()
Un exemple plus détaillé
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);
Chaque fois que vous utilisez wait, vous devez définir async une fois de plus, puis l'appeler. Je trouve ce processus un peu gênant et répétitif, j'aimerais donc demander s'il existe un moyen d'optimiser ou de résoudre ce problème ?
async ne nécessite pas d'attente, wait doit s'appuyer sur async
La valeur de retour de la fonction déclarée par async est un objet Promise :
Une telle fonction
Pour utiliser wait, vous devez le mettre dans la fonction async
Si vous n'utilisez pas wait, utilisez-le simplement comme promesse
Essayez ceci