Cara menggunakan await dengan fungsi bukan async
某草草
某草草 2017-05-16 13:33:34
0
3
700

wait perlu digunakan dalam fungsi async, jadi setiap kali kita ingin menggunakan await, kita mesti mentakrifkannya dahulu dalam fungsi async dan kemudian memanggil fungsi async ini.

Sama seperti ini

async function fn(){}
fn()

Contoh yang lebih terperinci

        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);

Setiap kali anda menggunakan await, anda perlu mentakrifkan async sekali lagi dan kemudian memanggilnya saya mendapati proses ini agak menyusahkan dan berulang, jadi saya ingin bertanya sama ada terdapat cara untuk mengoptimumkan atau menyelesaikan masalah ini?

某草草
某草草

membalas semua(3)
为情所困

async tidak memerlukan tunggu, tunggu mesti bergantung pada async

左手右手慢动作

Nilai pulangan fungsi yang diisytiharkan oleh async ialah objek Promise:

Fungsi sedemikian

async function fn() {}

Untuk menggunakan await, anda perlu meletakkannya dalam fungsi async

async function anthor() {
    await fn()
}

Jika anda tidak menggunakan await, gunakan sahaja ia sebagai Janji

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

Cuba ini

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);
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan