我有一个具有异步元素的类构造函数。稍后当我创建此类的实例时,我想读取一个仅在构造函数完成 100% 时才存在的属性。我总是遇到问题Can not read property 'id' of undefined.我几乎可以肯定这是关于异步的问题..等待。
class NewPiecePlease {
constructor(IPFS, OrbitDB) {
this.OrbitDB = OrbitDB;
(async () => {
this.node = await IPFS.create();
// Initalizing OrbitDB
this._init.bind(this);
this._init();
})();
}
// This will create OrbitDB instance, and orbitdb folder.
async _init() {
this.orbitdb = await this.OrbitDB.createInstance(this.node);
console.log("OrbitDB instance created!");
this.defaultOptions = { accessController: { write: [this.orbitdb.identity.publicKey] }}
const docStoreOptions = {
...this.defaultOptions,
indexBy: 'hash',
}
this.piecesDb = await this.orbitdb.docstore('pieces', docStoreOptions);
await this.piecesDb.load();
}
...
}
后来我像这样创建了这个类的一个实例:
(async () => {
const NPP = new NewPiecePlease;
console.log(NPP.piecesDb.id);
// This will give 'undefined' error
})();
我如何告诉 NodeJS 我想new NewPiecePlease完全完成?await console.log(NPP.piecesDb.id);没有帮助,这是可以理解的,因为它不会理解我在等待什么。这样做的正确方法是什么?
素胚勾勒不出你
相关分类