Der er 2 forskellige typer forbindelsesfejl, når du bruger MongoDB-driveren:
- Fejl under den første forbindelse
- Fejl efter den første forbindelse er etableret
Hændelsen 'fejl' bruges til at håndtere (2). Det ser ud til, at du leder efter den korrekte måde at håndtere indledende forbindelsesfejl. For dem skal du enten sende et tilbagekald til connect()
eller .catch()
på løftet om, at connect()
vender tilbage.
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;
}
}