我的类使用异步构造,并且由于不支持异步ctor,因此我试图使用一种模式来等待此类对象的构造:
ALPHA
现在,我可以使用以下内容创建对象:
export class BaseStationLayer extends BaseLayer {
// @ts-ignore
public Ready!: AsyncSubject<BaseStationLayer> = new AsyncSubject<BaseStationLayer>();
constructor() {
this.create().then(res => {
this.Ready!.next(this);
this.Ready!.complete();
}).catch(err => { this.Ready!.next(null); this.Ready!.complete(); });
}
async create() {
try {
await this.createLayer(...);
await this.pingService();
} catch (ex) {
throw ex;
}
}
}
但是,我希望能够使用const layer = new BaseStationLayer();
layer.Ready!.subscribe(ev => {});
语法。
使用await layer.Ready!
来转换layer.Ready!.toPromise()
(或替换为AsyncSubject
)是否安全,还是忽略了整个AsyncSubject-Characteristic特性?