Оператор count
работает следующим образом:
Подсчитывает количество выбросов в источнике и выбрасывает это число при завершении источника ( источник )
Так что вы можете использовать его так:
obs.pipe(count()).subscribe(totalEmissions => expect(totalEmissions).toEqual(4))
Обратите внимание, что вы не можете измерить, сколько событий произошло до того, как исходная наблюдаемая завершена, потому что, если она не завершилась, вы не закончили считать!
Однако вы можете принять к сведению «индекс» каждого излучения, используя tap
:
let count = 0
obs.pipe(tap(() => console.log("emitted! Index: " + count++))).subscribe(obsValue => {/*...*/})
Я не уверен, какой у вас вариант использования, но вот как вы можете это сделать.