久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 如何在非async函數(shù)下使用await

瀏覽:117日期:2023-09-20 10:52:43

問題描述

await需要在async函數(shù)中使用,所以每次我們想要使用await必須先在async函數(shù)中定義,然后調(diào)用這個(gè)async函數(shù)。

就比如這樣

async function fn(){}fn()

詳細(xì)一點(diǎn)的例子

async function asy(){ // 獲取當(dāng)前城市的位置 獲取熱門城市 獲取所有城市 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);

每次使用await之前都需要多定義一次async然后再調(diào)用,這一個(gè)過程我覺得略微麻煩以及重復(fù),所以想問下是否存在什么辦法優(yōu)化或者解決這一問題?

問題解答

回答1:

async 可以不需要 await, await 必須依賴 async

回答2:

async聲明的函數(shù)返回值是Promise對(duì)象:

這樣一個(gè)函數(shù)

async function fn() {}

使用await就需要放在async函數(shù)中

async function anthor() { await fn()}

不使用await就當(dāng)作Promise用

function anthor() { fn().then(...).catch(...)}回答3:

試試這樣

function asy(){ // 獲取當(dāng)前城市的位置 獲取熱門城市 獲取所有城市 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’) ]).then(values =>{this.cityGuessName=resCityGuess.data.name;this.cityGuessId=values[0].data.id;this.cityHot=values[1].data;this.cityAll=values[2].data; });}asy.apply(this);

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 班玛县| 牡丹江市| 丹阳市| 黔西| 青铜峡市| 大方县| 曲松县| 仪陇县| 临高县| 东光县| 马关县| 勃利县| 云南省| 双鸭山市| 剑川县| 洞口县| 隆子县| 武乡县| 阳信县| 兴安县| 余姚市| 启东市| 岳阳县| 大悟县| 广元市| 开远市| 阳东县| 大新县| 宜黄县| 昌乐县| 马鞍山市| 盘山县| 西乌| 宜良县| 临沂市| 金平| 涟源市| 柏乡县| 六枝特区| 永泰县| 潮州市|