angular ngIf-block 中的 rxjs observable 错过第一次更新
angular rxjs observable inside ngIf-block miss first update
我有两个观察值。第一个 observable 用于 ngIf-Block 语句。
第二个 observable 在 ngIf-Block 内部使用并映射第一个 observable 的值。
第二个 observable 没有从 ngIf-Block 内部的源获得 第一个 更新。
另一方面,在 ngIf-Block 之外它可以工作。
对这种意外行为有什么解释吗?
示例:https://stackblitz.com/edit/angular-rxjs-template-update-problem
发生这种情况是因为 number$
是 Subject 并且它在 *ngIf
内部使用,这意味着它仅在创建此模板块之后订阅 sum$
并且发生在 [=12= 之后] 更新为 this.number$.next(1)
。
所以你可以做的是使用 ReplaySubject(1)
而不是将它的最新项目重播给每个新订阅者所以当 *ngIf
中的模板 async
管道订阅它时它会得到如您所愿重播和更新最后一个值。
我有两个观察值。第一个 observable 用于 ngIf-Block 语句。 第二个 observable 在 ngIf-Block 内部使用并映射第一个 observable 的值。
第二个 observable 没有从 ngIf-Block 内部的源获得 第一个 更新。 另一方面,在 ngIf-Block 之外它可以工作。
对这种意外行为有什么解释吗?
示例:https://stackblitz.com/edit/angular-rxjs-template-update-problem
发生这种情况是因为 number$
是 Subject 并且它在 *ngIf
内部使用,这意味着它仅在创建此模板块之后订阅 sum$
并且发生在 [=12= 之后] 更新为 this.number$.next(1)
。
所以你可以做的是使用 ReplaySubject(1)
而不是将它的最新项目重播给每个新订阅者所以当 *ngIf
中的模板 async
管道订阅它时它会得到如您所愿重播和更新最后一个值。