Подсчет количества значений, выпущенных до завершения наблюдаемой? - PullRequest
0 голосов
/ 07 ноября 2018

Попытка проверить, что наблюдаемое излучает определенное количество событий до его завершения. Это псевдокод:

o.pipe(count).subscribe(count=>
  expect(count).toEqual(4));

Мысли

1 Ответ

0 голосов
/ 07 ноября 2018

Оператор count работает следующим образом:

Подсчитывает количество выбросов в источнике и выбрасывает это число при завершении источника ( источник )

Так что вы можете использовать его так:

obs.pipe(count()).subscribe(totalEmissions => expect(totalEmissions).toEqual(4))

Обратите внимание, что вы не можете измерить, сколько событий произошло до того, как исходная наблюдаемая завершена, потому что, если она не завершилась, вы не закончили считать!

Однако вы можете принять к сведению «индекс» каждого излучения, используя tap:

let count = 0
obs.pipe(tap(() => console.log("emitted! Index: " + count++))).subscribe(obsValue => {/*...*/})

Я не уверен, какой у вас вариант использования, но вот как вы можете это сделать.

...