Ne, to je nemožné, když nevíte, zda je databáze již připojena nebo ne. Pokud se možná budete muset nejprve připojit, a to je asynchronní, pak this.db
musí přinést slib a budete muset použít then
.
Všimněte si, že pomocí Bluebird můžete tento kód o něco zkrátit a vyhnout se tak podrobnému .then()
zpětné volání pomocí .call()
metoda
:
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');
};