可观察与回调 [重复]
Posted
技术标签:
【中文标题】可观察与回调 [重复]【英文标题】:Observable Versus Callback [duplicate] 【发布时间】:2017-12-28 02:55:33 【问题描述】:我已经做 javascript 一段时间了。然而,我对 Angular 2 还很陌生,所以我对 Observables 几乎一无所知。当我阅读 Observables 的描述时,它们听起来很像我已经知道的回调。当我问谷歌时,有回调和承诺之间的比较,还有承诺和可观察对象之间的比较。但是,我找不到回调和 Observables 之间的任何比较。
回调和可观察对象有什么区别?
【问题讨论】:
你需要重新研究一下callbacks和promises之间的区别,那么这个问题就会过时了。您可以比较 promise 和 observables,但回调是不同的概念。你注册回调到 promises、observables 或任何你想要的东西。 回调,即。能够传递函数引用,是实现 Promise 和 observables 的关键概念。所以这不是回调与可观察对象,而是回调和可观察对象 【参考方案1】:正如this thread 中所讨论的,Observables 和 Promises 之间的主要区别在于 Promises 处理可以解决或失败的一次性异步事件,而 Observables 通过附加到异步流数据或事件源的各种操作启用可组合流.最后,为了将 Observable 或 Promise 的结果传递回同步代码,您将需要一个回调来作为数据接收器操作,因此两者不是互斥的。话虽如此,Observables 和 Promises 一样,允许使用可组合函数的语法糖以声明方式定义异步数据流上的操作。在 Observables 的情况下,您可以使用 single 回调作为接收器将结果传递回同步代码,而不必嵌套函数调用和/或执行递归函数调用,就像在使用纯回调组合异步操作。
【讨论】:
以上是关于可观察与回调 [重复]的主要内容,如果未能解决你的问题,请参考以下文章