修改数组对象的Observable的内容

我的服务中有以下函数:

   getFiles(): Observable<File[]> {
    const makeFiles = map((response: FileResponse[]): File[] => {
      return response.map((fileResponse: FileResponse): File => {
        return File.fromResponse(fileResponse);
      });
    });

    return this.httpService.get('/profile/files').pipe(
      makeFiles,
      shareReplay(),
    );
  }

  getFileUri(filename: string): Observable<SafeUrl> {
    return this.httpService.get(`/profile/file/uri/${filename}`).pipe(
      mergeMap((uri: string) => this.httpService.get(uri, {}, { useUrlAsItIs: true, responseType: 'arraybuffer' })),
      map((fileBuffer: any) => {
        const unsafeUrl = URL.createObjectURL(new Blob([fileBuffer], {type: 'application/binary'}));
        const safeUrl = this.sanitizer.bypassSecurityTrustUrl(unsafeUrl);

        return safeUrl;
      })
    );
  }

正如您所看到的,getFiles返回File Array的Observable,getFileUri接受filename (File类的属性)并返回Observable。

我想要做的是,将这两个函数结合起来。这意味着,getFiles()应该仍然返回Observable<File[]>,并且数组中的每个文件都应该具有safeUrl属性。

我的问题是,我真的不知道如何做这个复杂的任务。

谢谢!

转载请注明出处:http://www.tzjx69597577.net/article/20230526/1229708.html