可以在管道中使用RxJS的“tap”操作符来获取最新的值,然后用“startWith”操作符将其初始值发送到管道中。具体代码如下所示:
// 在组件模板中,使用异步管道来显示用户的名称
{{ (user$ | async)?.name }}
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { tap, startWith } from 'rxjs/operators';
interface User {
id: number;
name: string;
}
@Component({
selector: 'app-user',
template: `...`,
})
export class UserComponent implements OnInit {
user$: Observable;
ngOnInit() {
this.user$ = this.userService.getUser().pipe(
tap((user) => console.log(user)), // 获取最新的值并打印到控制台
startWith(null) // 将初始值 null 发送到管道中
);
}
}