Nein, das ist unmöglich, wenn Sie nicht wissen, ob die Datenbank bereits verbunden ist oder nicht. Wenn Sie möglicherweise zuerst eine Verbindung herstellen müssen und dies asynchron ist, dann this.db
muss ein Versprechen liefern, und Sie müssen then
verwenden .
Beachten Sie, dass Sie mit Bluebird diesen Code ein wenig kürzen können, und vermeiden Sie das wortreiche .then()
Rückruf mithilfe von .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');
};