RxJavaScript中的Observable是否意味着异步执行

时间:2016-07-31 23:39:54

标签: rxjs5

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

1 个答案:

答案 0 :(得分:0)

不,它不暗示异步,您不需要使用另一个异步库。 RxJS旨在抽象出需要担心某些事情是如何执行的,并关注 执行什么。例如,如果我们有一个简单乘以值的函数:

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函数,而不关心值是同步还是异步。