javascript - 可观察对象与回调
我已经做 JavaScript 有一段时间了。然而,我对 Angular 2 相对较新,所以我几乎不了解 Observables。当我阅读 Observables 的描述时,它们听起来很像我已经熟悉的回调。当我在 Google 上搜索时,有关于回调和 Promise 的比较,也有关于 Promise 和 Observables 的比较。然而,我找不到回调和 Observables 之间的比较。
回调和可观察对象有什么区别?
答案#1
正如本讨论串中所述,Observables 和 Promises 之间的主要区别在于,Promises 处理一次性的异步事件,这些事件可以成功或失败,而 Observables 通过附加到异步流数据或事件源的各种操作,实现可组合的数据流。最终,为了将 Observable 或 Promise 的结果传回同步代码,你需要一个回调函数作为数据接收器,因此两者并不相互排斥。也就是说,Observables 和 Promises 一样,允许使用可组合函数的语法糖,以声明式方式定义对异步数据流的操作。在 Observables 的情况下,你可以使用一个单一回调作为接收器,将结果传回同步代码,而无需像使用纯回调组合异步操作时那样嵌套函数调用或执行递归函数调用。