asyncとawait改造プロジェクトによる非同期呼び出しインタフェースの処理
8586 ワード
1、再発関係のない非同期操作、同時にトリガ
例1:
例2:
2、複数のリンクに要求を開始し、同時形式(Promise.allを推奨)
例1:
例2 Promise.all:
3、複数のリンクに対して要求を開始し、形式を継続する
例:
要領:同時実行するには、すべての非同期操作を実行させpending状態に入り、await実行が一緒になるのを待つ必要があります.リレー形式は直接実行に行きます.
例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実行が一緒になるのを待つ必要があります.リレー形式は直接実行に行きます.