PromiseAngular和Angular有什么区别Observable?
Promise
Observable
每个例子都有助于理解这两种情况。我们可以在什么情况下使用每种情况?
A在异步操作完成或失败时Promise处理单个事件。
注意:那里Promise有支持取消的库,但 ES6Promise到目前为止还没有。
可观察的
AnObservable就像 a Stream(在许多语言中)并允许传递零个或多个事件,其中为每个事件调用回调。
Stream
通常Observable是首选,Promise因为它提供了Promise更多的功能。如果您想处理 0、1 或多个事件,Observable这并不重要。您可以在每种情况下使用相同的 API。
Observable还有一个优势Promise就是可以取消。如果不再需要对服务器的 HTTP 请求或其他一些昂贵的异步操作的结果,则Subscription允许Observable取消订阅,而Promise即使您不需要通知,最终也会调用成功或失败回调或它提供的结果。
Subscription
虽然 aPromise立即启动,但Observable仅当您订阅它时才会启动。这就是为什么 Observable 被称为惰性的原因。
Observable 提供类似于数组的运算符,如map, forEach, , …reduce
map
forEach
reduce
还有一些功能强大的运算符,例如retry(), or replay(), … 通常非常方便。 rxjs 附带的运算符列表
retry()
replay()
延迟执行允许在通过订阅执行 observable 之前建立一系列运算符,以进行更具声明性的编程。