【问题标题】:Does Observables in RxJavaScript imply asynchronous executionRxJavaScript 中的 Observables 是否意味着异步执行
【发布时间】:2016-07-31 23:39:53
【问题描述】:

我主要是 JavaScript 和 RxJs 的新手,所以我的问题甚至可能没有意义,但我试图了解 RxJavaScript 中的 Observables 是否应该与异步库一起使用,或者它是否应该在内部处理它?

【问题讨论】:

    标签: rxjs5


    【解决方案1】:

    不,这并不意味着异步,您不需要使用另一个异步库。 RxJS 是关于抽象出对如何执行某事的担忧,并专注于 what 被执行。例如,如果我们有一个简单地将值相乘的函数:

    function square(x) { return x * x; }
    

    上面对异步事件一无所知,所以我们可以将它用于任何一个:

    var counter = 1;
    var immediate = Rx.Observable.from([1, 2, 3, 4, 5]);
    var asynchronous = Rx.Observable.fromEvent(window, 'click', () => counter++);
    
    immediate.map(square).subscribe(x => console.log('Sync: ' + x));
    asynchronous.map(square).subscribe(x => console.log('Async: ' + x));
    

    第一个流(默认情况下)将立即同步执行,而第二个流在单击窗口时异步执行。两者都使用相同的square 函数,而不关心值是同步还是异步传入。

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2013-02-05
      • 2023-03-28
      • 2013-04-11
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多