我有以下代码
我是rjxs编程的新手,所以想知道有什么可以从根本上解决问题。我想做一个任务,先把所有最新的结果合并,然后再订阅分配结果。 但是 combineLatest 好像没有工作。什么可以是原因?
const downloadUrls$: any = Array.from(event.target.files).map((file: any) => {
const fileName = ...
const path = ...
const fileRef = ....
const task: any = ...
return task.snapshotChanges().pipe(
filter(snap => snap.state === firebase.storage.TaskState.SUCCESS),
switchMap(() => {
return fileRef.getDownloadURL().pipe(
map((url: string) => ({
name: fileName,
filepath: url,
relativePath: path,
}))
);
})
);
});
combineLatest(...downloadUrls$).subscribe((urls: any) => {
console.log(hi); // not printing
});
combinelatest不启动的原因是主题的引用,你应该改成这个版本。因此,删除... ...之前的下载Urls$。
combineLatest(downloadUrls$).subscribe((urls: any) => {
console.log(hi); // not printing
});
Combinelatest是用于合并两个或更多的观测值。有什么特殊的原因使用combinelatest与一个observable?否则你可以改成更简单的版本,如
downloadUrls$.subscribe((urls: any) => {
console.log(hi); // not printing
});
最新版本的 cobineLateste()
接收一个数组作为参数。
combineLatest(downloadUrls$).subscribe((urls: any) => {
console.log(hi); // not printing
});