> For the complete documentation index, see [llms.txt](https://ng-girls.gitbook.io/todo-list-tutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ng-girls.gitbook.io/todo-list-tutorial/more-workshops/rxjs_intro/operators.md).

# Operators

Here we will walk you through some basic operators. Each one will have link to [RxMarbles: Interactive diagrams of Rx Observables](https://rxmarbles.com/) example and from [RxJS and Reactive Programming - Animations and visual lessons](https://reactive.how/)

## map

`map` is an operator which is mapping emitted values to ones we want - it takes value, passes it through given function and returns new Observable.

> [Map on RxMarbles](https://rxmarbles.com/#map)
>
> [Map on reactive.how](https://reactive.how/map)

You may think of `map` as of a mist which each boat makes a blue boat - it is mapping boat :speedboat: to blue boat.

## filter

`filter` is an operator which emits only those values which satisfy a specified predicate.

> [filter on RxMarbles](https://rxmarbles.com/#filter)
>
> [Map vs Filter on reactive.how](https://reactive.how/filter)

This operator may be one that will allow only yellow boats to pass the bridge, or only those who has at least 3 people on board.

## merge

`merge` flattens multiple Observables together by returning mix of their values into one Observable.

> [merge on RxMarbles](https://rxmarbles.com/#merge)
>
> [merge on reactive.how](https://reactive.how/merge)

`merge` may be understood as a place where two rivers join and make one new river. Boats from both of them will flow on the new river with the order they've entered the river crossing.

## combineLatest

`combineLatest` multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables.

> [combineLatest on RxMarbles](https://rxmarbles.com/#combineLatest)
>
> [combineLatest on reactive.how](https://reactive.how/combinelatest)

You may think of `combineLatest` as of gallery showing a pair of boats (from different rivers), always the latest ones that entered joined river.

## takeLast

`takeLast` emits last x values emitted by the source Observable. Which means that if you will call `takeLast(3)` it will emit last 3 values emitted by Observable. It will do so **after** Observable reaching completed state.

> [takeLast on RxMarbles](https://rxmarbles.com/#takeLast)
>
> [takeLast on reactive.how](https://reactive.how/takelast)

## take

`take` emits first x values emitted by the source Observable. Which means that if you will call `take(3)` it will emit first 3 values emitted by Observable. After that it will complete returned Observable.

> [take on RxMarbles](https://rxmarbles.com/#take)
>
> [take on reactive.how](https://reactive.how/take)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ng-girls.gitbook.io/todo-list-tutorial/more-workshops/rxjs_intro/operators.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
