gpt4 book ai didi

javascript - 使用 RxJs Observable 包装基于 Promise 的 JavaScript HTTP 客户端

转载 作者:行者123 更新时间:2023-11-30 00:16:09 25 4
gpt4 key购买 nike

我正在考虑使用 Observables 将 .flatMapLatest() 和 .throttle() 功能添加到基于 Promise 的 HTTP 客户端库 (axios)。但我不打算更改整个应用程序以使用 Observables,所以我需要这样的东西:

Promise -> Observable -> Promise

有人设法做到这样的事情吗?我发现的所有示例都没有做到这一点。

我知道 RxJs 提供了一种从 Promise 生成 Observable 然后将其转换回 Promise 的方法,但我还没有想出如何将其应用于由随机后续 HTTP 客户端调用创建的多个 Promise。

最佳答案

Observables 会自动吸收 promises。您可以在 RxJS 调用中使用它们,它会“正常工作”:

myObservable.flatMap(x => somePromiseReturningFn("/api/" + x))

将完全按照您的意愿行事。

Observables 和 promises 与 .toPromise 很好地混合并匹配在 observables 和 observables 自动消费 promises 上。您可以安全地混合搭配它们。

请记住 RxJS 不知道 promise 库取消 - 所以如果你依赖它,你必须手动完成。

关于javascript - 使用 RxJs Observable 包装基于 Promise 的 JavaScript HTTP 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612746/

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