forked from ReactiveX/rxjs
/
mapTo.ts
42 lines (40 loc) · 1.38 KB
/
mapTo.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { OperatorFunction } from '../types';
import { map } from './map';
export function mapTo<R>(value: R): OperatorFunction<unknown, R>;
/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */
export function mapTo<T, R>(value: R): OperatorFunction<T, R>;
/**
* Emits the given constant value on the output Observable every time the source
* Observable emits a value.
*
* <span class="informal">Like {@link map}, but it maps every source value to
* the same output value every time.</span>
*
* ![](mapTo.png)
*
* Takes a constant `value` as argument, and emits that whenever the source
* Observable emits a value. In other words, ignores the actual source value,
* and simply uses the emission moment to know when to emit the given `value`.
*
* ## Example
*
* Map every click to the string `'Hi'`
*
* ```ts
* import { fromEvent, mapTo } from 'rxjs';
*
* const clicks = fromEvent(document, 'click');
* const greetings = clicks.pipe(mapTo('Hi'));
*
* greetings.subscribe(x => console.log(x));
* ```
*
* @see {@link map}
*
* @param value The value to map each source value to.
* @return A function that returns an Observable that emits the given `value`
* every time the source Observable emits.
*/
export function mapTo<R>(value: R): OperatorFunction<unknown, R> {
return map(() => value);
}