Как использовать оператор сумм rx js? - PullRequest
1 голос
/ 06 марта 2020

Вещи, которые я пробовал, включают следующее, где values ​​- это массив значений, для которых я хочу найти сумму.

Я также добавил необходимые функции из rx js следующим образом: Я получаю сообщение об ошибке

typeError: 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');
                });

По сумме на inte * доступно не так много. Любые входы, чтобы исправить и получить сумму?

1 Ответ

1 голос
/ 06 марта 2020
  • сумма: относительно официального rx js github хранилище они больше не экспортируют / не предоставляют оператор sum .
  • оператор уменьшения уменьшение применяет функцию накопителя к наблюдаемой для источника и возвращает накопленный результат после завершения источника.
  • оператор сканирования scan применяет функцию накопителя к наблюдаемому источнику и возвращает накопленный результат при каждом излучении.

setup

const values = [1,2,3,4,5];
const accumulator = (acc, curr) => acc + curr;

Уменьшить навесное оборудование

from(values).pipe(
  reduce(accumulator, 0)
)
// Expected output: 15

Сканирование навесного оборудования

from(values).pipe(
  scan(accumulator, 0)
)
// expected output: 1, 3, 6, 10, 15

Я сделал работающий стек здесь .

...