本质上,标题所说的,有什么理由为了进行超文本传输协议调用而使用可观察到的而不是promise?似乎是不必要的过度复杂化,因为所有的呼叫将做的是成功或失败,并且没有真正的理由取消它,几乎从来没有。对于典型的用例,而不是典型的可观察到的防抖销售推销(讽刺的是,ng-防抖无论如何都很好,不会打无用的电话)。
promise和observable之间最基本的区别是,如果没有订阅任何功能,observable模块将无法工作。因此减少了服务器的负担。
在promise中,无论您是否真正使用响应,它都会在ping您的请求和负载后向您发送promise对象;这有时是不可取的。
主要用于减轻节点或其他服务器的负载。
观测值有一个巨大的优势,这在这里是非常相关的。
可观察
支持取消,而Promise
不支持。
使用订阅()
和map()
,而不是,那么()
似乎不会给我增加太多复杂性。您还可以使用toPromise()
来获取一个Promise
,如果这是您需要的。
有关更多详细信息,请参见角度promisevs可观测。
此外,如果使用FRP风格的编程,则可以方便地在任何地方获得可观察到的结果。如果不希望这样做,则只需使用toPromise()
即可提供promise和稍微简单的API。
给出一个汽车列表(
问题内容: 我一直在阅读Observer模式,以保持UI处于最新状态,但仍然看不到它的用途。即使在我的特定对象中通知了我的MainActivity然后运行update();方法我仍然无法使用Pet对象来获取更新值,因为该对象是在Oncreate中创建的…而我只是无法创建新对象,因为那时变量会有所不同..这是我的实施,它似乎不起作用。 观察者/ MainActivity 可观察/宠物 问题答案: 首
问题内容: 给定汽车清单(),我可以这样做: 有没有办法我可以从一个到一个序列? 像没有参数的东西 问题答案: 您可以这样映射到: 请注意,flatMapping可能不会保留源可观察的顺序。如果订单对您很重要,请使用。
我已经做javascript有一段时间了。然而,我对Angular 2还比较陌生,所以我对可观测的东西几乎一无所知。当我读到对可观测事物的描述时,它们听起来很像我已经知道的回调。当我问谷歌时,有回调和promise之间的比较,也有promise和可观察之间的比较。然而,我找不到回调和可观察之间的任何比较。 回调和可观察之间有什么区别?
最新消息 问题似乎是地图函数没有在“失败”的请求上运行。这意味着,如果我正在交谈的API返回一个错误(或其他4xx错误)Angular将把它视为失败,并导致观察者运行订阅的错误回调,跳过进程中的映射函数。 是否可以强制Angular将某些4xx错误视为成功的请求,或者强制map函数运行,即使Observable返回错误? 我有以下代码运行在我的Angular2应用程序: 代码执行得很好,只是没有启
我来自同步编程背景,我很难理解可观察性。 这是我的服务/提供商的摘录(离子2项目) 我将从订阅它。关于这一点,我有几个问题。 > 即使我没有声明,上面的代码是否返回一个可观察/观察者? 响应是JSON。如何检查/处理JSON并执行一些操作,如 那就做吧 我认为应该在提供者类中完成。只是一个典型的提示/例子将是真棒。 当请求到达subscribe方法时,它是否真的发生了? 创建和返回Angular