【发布时间】:2016-07-31 23:39:53
【问题描述】:
我主要是 JavaScript 和 RxJs 的新手,所以我的问题甚至可能没有意义,但我试图了解 RxJavaScript 中的 Observables 是否应该与异步库一起使用,或者它是否应该在内部处理它?
【问题讨论】:
标签: rxjs5
我主要是 JavaScript 和 RxJs 的新手,所以我的问题甚至可能没有意义,但我试图了解 RxJavaScript 中的 Observables 是否应该与异步库一起使用,或者它是否应该在内部处理它?
【问题讨论】:
标签: rxjs5
不,这并不意味着异步,您不需要使用另一个异步库。 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 函数,而不关心值是同步还是异步传入。
【讨论】: