【发布时间】:2020-09-24 08:27:02
【问题描述】:
我有剪辑服务:
export class ClipService {
allClips: Clip[] = [];
private clips = new BehaviorSubject<Clip[]>(null);
constructor(private http: HttpClient) {
this.loadClips();
}
private fetchClips(body?: string): Observable<Clip[]> {
let url = myurl/clips;
try {
return this.http.get<Clip[]>(url);
} catch (e) {
console.error('Error fetching clips: ' + e);
}
}
loadClips(): void {
this.fetchclips().subscribe(allClips => this.allClips = allClips);
this.setClips(this.allClips);
}
getClips(): Observable<Clip[]> {
return this.clips.asObservable();
}
}
还有一个 ClipComponent.ts,我在其中使用这样的服务:
ngOnInit(): void {
this.clipService.getClips().subscribe(clips => {
this.allClips = clips;
this.clips = this.allClips;
console.log(this.clips);
this.populateFilters(this.clips);
});
}
即使触发了对 API 的调用并返回了大约 200 个剪辑,组件中的 console.log 始终会记录一个空数组。
我在这里错过了什么?
【问题讨论】:
-
我更新了代码并删除了这里不需要的所有内容。我不知道如何创建一个“实时”示例,因为我使用了一个数据库。有没有办法嘲笑它?
标签: angular observable behaviorsubject