我试图在构造函数中导出一个带异步调用的类:
my.js
:
module.exports = class My extends Emitter {
constructor () {
super()
this.db = Object.create(db)
this.db.init(cfg)
}
}
db.js
:
module.exports = {
async init (cfg) {
nano = await auth(cfg.user, cfg.pass)
db = nano.use(cfg.db)
},
async get (id) {
...
}
在let my = new My()
之后,my.db仍为空。我如何等待init()完成?
答案 0 :(得分:1)
如果您执行类似
的操作module.exports = class My extends Emitter {
constructor () {
super()
this.db = Object.create(db)
this.waitForMe = this.db.init(cfg)
}
}
let my = new My();
知道async / await只是Promises的糖,你可以等待:
my.waitForMe.then(function() {
});