gpt4 book ai didi

rxjs - 使用相应的 flatMap 结果压缩值

转载 作者:行者123 更新时间:2023-12-01 23:42:45 25 4
gpt4 key购买 nike

假设我有一个文件流 filesStream 和一个函数 uploadFile,它返回一个值流 (Rx.Observable.fromPromise(...))。可以通过简单的 flatMap 上传流中的文件:

filesStream.flatMap(uploadFile)

我需要的是从 filesStream 压缩文件以及来自 uploadFile 的相应响应:

zippedStream.subscribe(
(file, response) => console.log("File " + file.name + " uploaded: " + response.message)
)

我想出了一个非常困惑的方法,但确实有效

var zipppedStream = filesStream.flatMap(
(file) => uploadFile(file).zip(Rx.Observable.just(file), (r, f) => [r, f])
)

但我不太喜欢它,因为我需要在 subscribe 中解压二值数组,而且它通常看起来很重。是你的做法还是我遗漏了什么?

最佳答案

您可以绕过使用 zip 并使用 flatMap 重载来完成您在这里想要的事情

let zippedStream = fileStream.flatMap(
(file) => uploadFile(file),
(file, uploaded) => [file, uploaded]);

zippedStream.subscribe(
([file, response]) => console.log("File " + file.name + " uploaded: " + response.message));

关于rxjs - 使用相应的 flatMap 结果压缩值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com