我有callPhantom来渲染pdf的功能,我需要等到所有组件加载。 这是功能:
this.http.get<[any]>("api/funds").subscribe(async funds => {
for (let i = 0; i < funds.length; i++) {
this.fund = funds[i];
// here i need to wait until onChartLoad fired.
await new Promise(resolve => setTimeout(() => resolve(), 4000));
await (<any>window).callPhantom({ id: this.fund.fileName });
}
await (<any>window).callPhantom();
})
我有完成加载图表后触发的函数'onChartLoad'。 我需要继续循环打印所有资金, 那么适合我的哪种类型的观察?
我尝试使用Subject,并将其投射到承诺:
await this.renderObservable.take(1).toPromise();
然后它只等一次。
添加
this.renderObservable = new Subject();
之后解决了我的问题,但我认为这不是最好的方法。