MongoDBドライバーを使用する場合、接続エラーには2つの異なるタイプがあります。
- 初期接続中のエラー
- 初期接続が確立された後のエラー
'error'イベントは、(2)を処理するために使用されます。初期接続エラーを処理する正しい方法を探しているようです。その場合は、コールバックをconnect()
に渡す必要があります または.catch()
connect()
という約束で 戻ります。
const NUM_RETRIES = 3;
const delay = 1000;
let error = null;
for (let i = 0; i < NUM_RETRIES; ++i) {
if (i > 0) {
await new Promise(resolve => setTimeout(resolve, i * delay));
}
try {
await mdb.MongoClient.connect(uri);
break;
} catch (err) {
error = err;
}
}