RXJS的角度异步管道:如何更新给定的对象?

时间:2019-05-23 13:08:25

标签: angular asynchronous rxjs

假设我有一个简单的可观察对象,它返回了当前连接的用户。

在我的模板中,我只是打电话给用户以显示其个人资料信息。

public $user: Observable<User>;

ngOnInit() {
    this.$user = this.userService.get();
}

我的观点:

<div *ngIf="$user | async as u">
     ...
     <ion-toggle [(ngModel)]='u.synchronized'></ion-toggle>
</div>

显示效果很好,我确实听说使用Angular的异步管道对稳定性可读性性能更好。

达到this.userService.set(user: User);的最佳方法是什么?我在用户个人资料中更改了一些信息,但是通过API更新信息的最佳方法是什么

1 个答案:

答案 0 :(得分:0)

refreshUser(user) {
  this.userService.set(user: User).subscribe(() => this.$user = this.userService.get());
}

调用您的二传手,然后通过提供新值来刷新可观察值。

如果可观察对象是热门并已自动更新,则您无需执行任何操作。

我还要补充一点,如果您不使用热的可观察变量和非原始类型,则可观察变量是无用的,因为Angular依赖于内存引用更改来更新视图,这意味着仅设置用户就足够了。