Nee, dat kan niet als je niet weet of de database al is aangesloten of niet. Als u eerst verbinding moet maken, en dat is asynchroon, dan this.db
moet een belofte opleveren, en je moet then
. gebruiken .
Merk op dat je met Bluebird die code een beetje kunt inkorten, en die uitgebreide .then()
vermijden terugbellen met behulp van de .call()
methode
:
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');
};