CombineLatest没有被调用

我有以下代码

我是rjxs编程的新手,所以想知道可能是根本原因。我正在尝试执行某项任务,首先合并所有最新结果,然后订阅以分配结果。但是combinateLatest似乎不起作用。可能是什么原因?

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
});
wh1469 回答:CombineLatest没有被调用

bindlatest不会触发的原因是该主题的参考。 您应该更改为此版本。因此,在downloadUrls $之前删除...。

combineLatest(downloadUrls$).subscribe((urls: any) => {
      console.log(hi); // not printing
    });

Combinelatest用于合并两个或多个可观察值。将Combinelatest与一个可观察值结合使用是否有任何特定原因?否则,您可以更改为更简单的版本,例如

downloadUrls$.subscribe((urls: any) => {
          console.log(hi); // not printing
        });
,

cobineLateste()的最新版本将数组作为参数:

combineLatest(downloadUrls$).subscribe((urls: any) => {
  console.log(hi); // not printing
});
本文链接:https://www.f2er.com/2385399.html

大家都在问