Non, c'est impossible lorsque vous ne savez pas si la base de données est déjà connectée ou non. Si vous devez d'abord vous connecter, et que c'est asynchrone, alors this.db
doit donner une promesse, et vous devrez utiliser then
.
Notez qu'avec Bluebird, vous pouvez raccourcir un peu ce code et éviter ce verbeux .then()
rappel en utilisant la .call()
méthode
:
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');
};