Nej, det är omöjligt när du inte vet om databasen redan är ansluten eller inte. Om du kanske behöver ansluta först, och det är asynkront, så this.db
måste ge ett löfte, och du måste använda then
.
Lägg märke till att med Bluebird kan du förkorta den koden en aning och undvika den verbose .then()
återuppringning genom att använda .call()
metod
:
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');
};