【发布时间】:2022-01-08 18:17:29
【问题描述】:
我正在尝试对主题中每个发出的值调用另一个可观察对象。
我现在的问题是subject 的第一个发射值触发switchMap 并调用confirmCsvUpload(...),但每个下一个发射值都会触发switchMap 而不是confirmCsvUpload(...)。
有人能弄清楚它为什么不调用该函数吗?
// Subject
private _confirmCsvUpload = new Subject<{ account: Account, previewData: PreviewData[], previewId: string }>();
// Subscription to the Subject
this._confirmCsvUpload.pipe(
switchMap(previewData => this._uploadCsvService.confirmCsvUpload(previewData.account, previewData.previewData, previewData.previewId))
).subscribe();
// Function which emits value to the subject (Not the function who gets called in the switchMap())
confirmCsvUpload(): void {
this._confirmCsvUpload.next({ account: this.account, previewData: this._previewData, previewId: this.getPreviewIdFromRoute() });
}
【问题讨论】:
-
分享完整代码
-
this._uploadCsvService.confirmCsvUpload(previewData.account, previewData.previewData, previewData.previewId)本身是可观察的吗? -
@Benny 它是一个返回 observable 的函数
-
@zainhassan 你需要什么代码?我认为
this._uploadCsvService.confirmCsvUpload(...)无关紧要 -
@MarcelSauter 好的,这很好。在这种情况下,我建议在 Stackblitz 上分享一个演示问题的最小应用程序
标签: javascript angular typescript rxjs