RxJS + (async/await)用于(多事件)用例

RxJS + (async/await) for (multiple-event) use cases

本文关键字:用于 事件 用例 await async RxJS      更新时间:2023-09-26

我正在编写一个Javascript应用程序从传感器获取数据。我开始使用ES6 Promises + Generators使用BluebirdBluebird。在客户端和服务器端都运行cororine ,但它不能正常工作。

有人告诉我Promises在(多事件)用例中不能正常工作,可以用RxJS替代。

我看了看RxJS,它看起来可以做同样的承诺,甚至更好。我想使用生成器(async/await)来编写异步代码,看起来是同步的,我的问题是:

我可以使用RxJS + (async/await)或RxJS已经有自己的方式做相同的(async/await)吗?

谢谢

Async/await不是ES6的一部分,它计划在ES7中使用。所以你可能不会很快在JavaScript中使用它。TypeScript从2.1开始支持ES5的async/await。

它认为当RxJS出来时,你将能够使用async/await。Async/await与Promises一起工作,就像RxJS一样,尽管它主要与observable一起工作。有一些方法,比如Observable.toPromise(),可以将observable转换为Promises,而且大多数observable也接受Promise作为参数。

所以我认为两者可以很好地互换(我个人还没有尝试过)。

如果你的主要兴趣是使你的代码比RxJS更具可读性,那么RxJS是减少回调地狱的一个好选择。

这两个例子展示了如何使用Observable.concatMap()操作符按顺序调用多个HTTP请求。这两个例子都是用TypeScript编写的,但在还有ES6。这些例子也使用了新的RxJS实现(https://github.com/ReactiveX/RxJS):

)
  • Angular 2 + rxjs -如何返回几个后续http请求获取的对象流

  • 如何在ReactiveX/rxjs中使用排气映射