如何使用rxjs的求和运算符?

Del*_*fin 5 javascript rxjs rxjs-pipeable-operators rxjs6

我尝试过的事情包括以下内容,其中值是我想要查找总和的值的数组。

我还从 rxjs 添加了必要的功能,如下所示:我收到一条错误消息

类型错误:Rx.Observable.from(...).sum 不是函数

const { merge , interval ,from} = rxjs;
const { tap ,take ,sum } = rxjs.operators;   
             
var sumSource = Rx.Observable.from(values).sum(function (x) {
    return x;
});

var subscription = sumSource.subscribe(
    function (x) {
        console.log('Next: ' + x);
        x.target.value = x;
    },
    function (err) {
        console.log('Error: ' + err);
    },
    function () {
        console.log('Completed');
    }
);
Run Code Online (Sandbox Code Playgroud)

互联网上关于总和的信息不多。有任何输入可以修复并获得总和吗?

Jon*_*wag 3

  • sum:关于官方 rxjs github存储库,他们不再导出/提供sum运算符。
  • 减少运算符 减少对源Observable应用累加器函数,并在源完成时返回累积结果。
  • scan 运算符 scan对源 Observable 应用累加器函数,并在每次发出时返回累加结果。

设置

const values = [1,2,3,4,5];
const accumulator = (acc, curr) => acc + curr;
Run Code Online (Sandbox Code Playgroud)

实施减少

from(values).pipe(
  reduce(accumulator, 0)
)
// Expected output: 15
Run Code Online (Sandbox Code Playgroud)

实施扫描

from(values).pipe(
  scan(accumulator, 0)
)
// expected output: 1, 3, 6, 10, 15
Run Code Online (Sandbox Code Playgroud)

我在这里做了一个正在运行的 stackblitz 。