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');
};