Nej, det er umuligt, når du ikke ved, om databasen allerede er forbundet eller ej. Hvis du måske skal oprette forbindelse i starten, og det er asynkront, så this.db
skal give et løfte, og du skal bruge then
.
Bemærk, at med Bluebird kan du forkorte den kode en smule og undgå den verbose .then()
tilbagekald ved at bruge .call()
metode
:
Job.prototype.getDb = function() {
if (!this.db)
this.db = Mongo.connectAsync(this.options.connection);
return this.db;
};
Job.prototype.test = function() {
return this.getDb().call('collection', 'abc').call('findAsync');
};