関数を非同期としてマークするタイミング 質問する

関数を非同期としてマークするタイミング 質問する

async基本的に、関数内で使用する場合は、関数の前にキーワードを付ける必要がありますawait。ただし、一部の関数が Promise を返すだけで何も待機しない場合は、関数を としてマークする必要がありますかasync?

どちらも正しいように思えますか?

// with async (returns Promise)
async getActiveQueue() {
   return redisClient.zrangeAsync(activeQueue, 0, -1);
}

// difference? Both could be awaited isn't it?
getActiveQueue() {
   return redisClient.zrangeAsync(activeQueue, 0, -1);
}

ベストアンサー1

ある関数が Promise を返すだけで何も待機しない場合は、その関数を async としてマークする必要がありますか?

そうすべきではないと思います。/ の目的は、asyncPromiseawaitを作成 (および解決) することです。既に返す Promise がある場合、async/ はawaitその関数に対して何のメリットも与えません。

どちらも待てますよね?

awaitは関数ではなく、Promise で動作します。したがって、awaitPromise が手動で作成されたか、または によってバックグラウンドで作成されたかに関係なく、どの Promise でも正常に動作しますasync

おすすめ記事