可以有人请解释我承诺vs可观察Angular 2?
任何样本的每一个将有助于理解这两种情况。
和何时使用每种情况下的情况。
诺言
当异步操作完成或失败时,Promise处理单个事件。
注意:有支持取消的Promise库,但ES6 Promise还不到。
可观察
Observable类似于Stream(在许多语言中),并允许传递零个或多个事件,其中为每个事件调用回调。
通常Observable比Promise更受欢迎,因为它提供了Promise等特性。使用Observable,如果要处理0,1或多个事件,则无关紧要。您可以在每种情况下使用相同的API。
可观察也具有超过承诺的可取消的优点。如果不再需要对服务器的HTTP请求的结果或一些其他昂贵的异步操作,则观察者的订阅允许取消订阅,而Promise将最终调用成功或失败的回调,即使您没有需要通知或其提供的结果。
Observable提供像map,forEach,reduce,…类似于数组的运算符
还有强大的运算符,如retry()或replay(),…,这通常是相当方便。