Observables(Rx.js)与ES2015生成器相比如何?

21 浏览
0 Comments

Observables(Rx.js)与ES2015生成器相比如何?

就我所了解,以下是解决异步编程工作流的技术:

  1. 回调函数(CSP)
  2. Promise

较新的方法:

  1. Rx.js Observables(或mostjs、bacon.js、xstream等)
  2. ES6生成器
  3. Async/Await

我们现在正从回调函数和Promise转向这些较新的方法。根据我目前的理解,Async/Await更像是对ES2015生成器的更干净的抽象。

我无法理解的是Observables和生成器之间的概念差异。我广泛使用了它们,并没有使用上的困扰。

让我困惑的是Observables和生成器的使用场景。我得出的结论是,它们最终解决的问题是相同的 - 异步性。唯一我看到的潜在差异是,生成器本质上为代码提供了命令式语义,而使用Rxjs的Observables似乎提供了响应式范式。但是,仅此而已吗?

这是否应该是选择Observable和生成器之间的标准?有什么优缺点。

我是否没有看到大局?

此外,随着Observable最终进入未来的Ecmascript,Promise(带有可取消令牌)/ Observable /生成器会相互竞争吗?

0