race: 最初に完了したものを返す。any: 最初に成功したものを返す
// タイムアウト実装例
const timeout = new Promise((_, reject) =>
setTimeout(() => reject(new Error('timeout')), 5000));
const result = await Promise.race([fetch(url), timeout]);
// any: 最初の成功(全て失敗するとAggregateError)
const data = await Promise.any([
fetch(mirror1), fetch(mirror2), fetch(mirror3)
]);タイムアウト処理はraceで手軽に実装できる。anyは複数のフォールバックから最初の成功を取る場合に使う。