Istnieją dwa różne typy błędów połączenia podczas korzystania ze sterownika MongoDB:
- Błędy podczas pierwszego połączenia
- Błędy po nawiązaniu pierwszego połączenia
Zdarzenie „błąd” służy do obsługi (2). Wygląda na to, że szukasz właściwego sposobu obsługi błędów początkowego połączenia. W takim przypadku powinieneś przekazać wywołanie zwrotne do connect()
lub .catch()
na obietnicy, że connect()
powraca.
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;
}
}