gpt4 book ai didi

angular - Promises 和 Observables 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 16:43:58 28 4
gpt4 key购买 nike

Angular 中的 PromiseObservable 有什么区别?

每个例子都有助于理解这两种情况。我们可以在什么情况下使用每个案例?

最佳答案

promise

Promise 在异步操作完成或失败时处理单个事件

注意:Promise 库支持取消,但 ES6 Promise 目前还不支持。

可观察

Observable 就像一个 Stream(在许多语言中),允许传递零个或多个事件,其中每个事件都会调用回调事件。

通常 Observable 优于 Promise,因为它提供了 Promise 等功能。使用 Observable,无论您要处理 0、1 还是多个事件都没有关系。您可以在每种情况下使用相同的 API。

ObservablePromise 相比还有一个优势是可取消。如果不再需要对服务器的 HTTP 请求或其他一些昂贵的异步操作的结果,则 ObservableSubscription 允许取消订阅,而 Promise 最终会调用成功或失败的回调,即使您不再需要通知或它提供的结果也是如此。

Promise 会立即启动,而 Observable 只有在您订阅它时才会启动。这就是 Observable 被称为惰性的原因。

Observable 提供运算符,如mapforEachreduce,...类似于数组

还有一些强大的运算符,例如 retry()replay(),...它们通常非常方便。 A list of operators shipped with rxjs

惰性执行允许在通过订阅执行可观察对象之前建立一个运算符链,以进行更具声明性的编程。

关于angular - Promises 和 Observables 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37364973/

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