So verwenden Sie „await' mit nicht asynchronen Funktionen
某草草
某草草 2017-05-16 13:33:34
0
3
701

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.

某草草
某草草

Antworte allen(3)
为情所困

async 可以不需要 await, await 必须依赖 async

左手右手慢动作

async声明的函数返回值是Promise对象:

这样一个函数

async function fn() {}

使用await就需要放在async函数中

async function anthor() {
    await fn()
}

不使用await就当作Promise用

function anthor() {
    fn().then(...).catch(...)
}
滿天的星座

试试这样

function asy(){
    // 获取当前城市的位置 获取热门城市 获取所有城市
    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);
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage