修改数组对象的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