| id | scan | |
|---|---|---|
| compareWith | reduce | |
| lesson | 21 | |
| compare |
|
|
| video | 254283000 | |
| learnBackAbout | filter | |
| learnAbout | merge | |
| title | The RxJS scan operator and the accumulator function | |
| layout | default | |
| class | post | |
| preview_image | scan/content_preview.jpg | |
| preview_image_alt | Scanning a stream | |
| revised | Monday, 26 Nov. 2018 |
❚ scan takes three arguments:
- an input stream
- an accumulator function (e.g. prepend a
characterto astring) - an initial value called seed (e.g.
!)
The accumulator function combines two values:
- an accumulated value called
accumulation - and a
value
As a result, the accumulator returns a new accumulation.
- As you can see, the output stream does not start with the seed. This is how it works, for example, in RxJS.
- In some other reactive stream libraries (like xstream and Most.js) the output stream starts with the seed.
- To start with the seed in RxJS and such, you can chain
❚ startWith(seed)and❚ scan(f, seed).