Tidak, itu tidak mungkin ketika Anda tidak tahu apakah database sudah terhubung atau belum. Jika Anda mungkin perlu terhubung terlebih dahulu, dan itu tidak sinkron, maka this.db
harus menghasilkan janji, dan Anda harus menggunakan then
.
Perhatikan bahwa dengan Bluebird Anda dapat mempersingkat kode itu sedikit, dan menghindari .then()
yang bertele-tele itu panggilan balik dengan menggunakan .call()
metode
:
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');
};