sample<T>(notifier: Observable<any>): MonoTypeOperatorFunction<T>
notifier | El Observable que indica cuándo emitir el valor más reciente del Observable fuente. |
MonoTypeOperatorFunction<T>
: Un Observable que emite el valor más reciente del Observable fuente cuando el Observable notifier
emite un valor o se completa.
Es como sampleTime
, pero toma una muestra del Observable fuente cuando el Observable notificador emite un valor.
Cuando el Observable notifier
emite un valor o se completa, sample
toma una muestra del Observable fuente y emite la emisión más reciente desde el último muestreo, a no ser que la fuente no haya emitido nada desde el último muestreo. En cuanto se lleve a cabo la suscripción al Observable resultante, también se realizará la del Observable notifier
.
Emitir el valor más reciente desde el último muestreo, realizado cuando interval emite (cada 2s)
import { interval } from "rxjs";
import { sample } from "rxjs/operators";
const number$ = interval(1000);
number$.pipe(sample(interval(2000))).subscribe(console.log);
// Salida: 1, 3, 5, 7, 9...
Emitir el valor más reciente desde el último muestreo, realizado cada vez que se pulsa una tecla
import { fromEvent, interval } from "rxjs";
import { sample } from "rxjs/operators";
const number$ = interval(1000);
const key$ = fromEvent<KeyboardEvent>(document, "keydown");
number$
.pipe(sample(key$))
.subscribe((n) =>
console.log(`El último valor emitido tras la última tecla pulsada es: ${n}`)
);
// Salida: El último valor emitido tras la última tecla pulsada es: n
Con cada click, realizar un muestreo del temporizador seconds
import { fromEvent, interval } from "rxjs";
import { sample } from "rxjs/operators";
const seconds = interval(1000);
const clicks = fromEvent(document, "click");
const result = seconds.pipe(sample(clicks));
result.subscribe((x) => console.log(x));
Documentación oficial en inglés