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