No, eso es imposible cuando no sabes si la base de datos ya está conectada o no. Si necesita conectarse al principio, y eso es asíncrono, entonces this.db
debe rendir una promesa, y deberá usar then
.
Tenga en cuenta que con Bluebird puede acortar ese código un poco y evitar ese .then()
devolución de llamada mediante .call()
método
:
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');
};