带有异步代码的扫描运算符

Scan operator with asynchronous code

我通常这样使用扫描:

Observable.interval(10).take(10).scan((acc, x) => acc.concat(x), []).subscribe...

现在,在扫描的第一个参数中,我想传递一个获取 (acc, x) 和 returns Observable of new acc 的方法,而不是同步方法。 (例如,一种保存到 dB 和 returns 保存的对象的方法,其中包含来自 db 的信息,例如修订号,然后将其添加到累加器中)。

我发现 mergeScan operator 似乎完全符合我想要的签名,但我找不到任何示例,当我尝试它时我得到 Property 'mergeScan' does not exist on type Observable<number>.

我试过的是这样的:

Observable.interval(10).take(10)
        .mergeScan((acc, x) => Observable.of(acc.concat(x)), [])
        .subscribe(x => console.log(x));

我在 Angular2 中使用 rxjs5

我在Rxjs的5.0.0-beta.6版本中可以看到这个运算符

你试试这样导入运算符:

import 'rxjs/add/operator/mergeScan';