我有一个 Angular/Django 应用程序,当我重复刷新页面时,在大约 10% 的情况下,lastValueFrom 的结果为空。不过,其余时间,我都能看到正确的数据。
这是我的代码:
async ngOnInit() {
this.goals$ = this.store.select(state => state.shortGoals.shortGoals);
this.goals = await lastValueFrom(this.goals$.pipe(take(1)));
我已尝试使用
delay
、retry
和 timeout
以及解析器,但问题仍然存在。
您可以尝试使用
filter
运算符仅允许具有值的排放吗?
this.goals = await lastValueFrom(this.goals$.pipe(
filter((data: any) => !!data),
take(1),
);
如果这不起作用,您还可以尝试订阅可观察对象并获取数据。
this.goals$.pipe(
takeUntilDestroyed(),
filter((data: any) => !!data),
take(1),
).subscribe((data: any) => {
this.goals = data;
});