asyncとawait改造プロジェクトによる非同期呼び出しインタフェースの処理

8586 ワード

1、再発関係のない非同期操作、同時にトリガ
例1:
let [foo, bar] = Promise.all([getFoo(), getBar()]);

例2:
let fooPromise = getFoo();
let barPromise = getBar();
let foo = await fooPromise();
let Bar = await barPromise();

2、複数のリンクに要求を開始し、同時形式(Promise.allを推奨)
例1:
async function dbFun() {
    const dbUrl = [{}, {}, {}];
    let promises = dbUrl.map(url => {
        return db.get(url)
    })
    let result = []
    for(let promise of promises) {
        result.push(await promise)
    }
    console.log(result)
}
dbFun().then()

例2 Promise.all:
async function dbFun() {
    const dbUrl = [{}, {}, {}];
    let promises = dbUrl.map(url => {
        return db.get(url)
    })
    let result = await Promise.all(promises)
    console.log(result)
}
dbFun().then()

3、複数のリンクに対して要求を開始し、形式を継続する
例:
async function dbFun() {
    const dbUrl = [{}, {}, {}];
    for(let url of dbUrl) {
        await db.get(url)
    }
}
dbFun().then()

要領:同時実行するには、すべての非同期操作を実行させpending状態に入り、await実行が一緒になるのを待つ必要があります.リレー形式は直接実行に行きます.