No, è impossibile quando non sai se il database è già connesso o meno. Se potrebbe essere necessario connetterti all'inizio, ed è asincrono, allora this.db deve mantenere una promessa e dovrai usare then .
Nota che con Bluebird puoi abbreviare un po' quel codice ed evitare quel dettagliato .then() richiamata utilizzando .call() metodo
:
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');
};