every<T>(predicate: (value: T, index: number, source: Observable<T>) => boolean, thisArg?: any): OperatorFunction<T, boolean>
| predicate | Una función que determina si el valor cumple o no la condición. |
| thisArg | Opcional. El valor por defecto es undefined.
Objeto opcional que se utiliza como valor del this en la *callback* |
OperatorFunction<T, boolean>: Un Observable de un solo valor booleano que determina si todos los elementos del Observable fuente cumplen la condición especificada.
Si todos los valores emitidos por el Observable fuente cumplen la condición especificada, every emite true. Si hay algún valor que no cumpla la condición, se emite false.
Comprobar si todos los valores emitidos son numéricos
import { of } from "rxjs";
import { every } from "rxjs/operators";
const number$ = of(1, 2, 3, 4);
number$.pipe(every((n) => Number.isInteger(n))).subscribe(console.log);
// Salida: true
Comprobar si todos los valores emitidos son menores a 2
import { of } from "rxjs";
import { every } from "rxjs/operators";
const number$ = of(1, 2, 3, 4);
number$.pipe(every((n) => n < 2)).subscribe(console.log);
// Salida: false
Comprobar si todas las peticiones tienen un status 200 (todo OK)
import { of } from "rxjs";
import { every, concatMap } from "rxjs/operators";
import { ajax } from "rxjs/ajax";
const pokemonId$ = of(1, 5, 6);
function getPokemon(id: number) {
return ajax(`https://pokeapi.co/api/v2/pokemon/${id}`);
}
pokemonId$
.pipe(
concatMap((id) => getPokemon(id)),
every(({ status }) => status === 200)
)
.subscribe(console.log);
// Salida: true
Un simple ejemplo que emite true si todos los elementos son menores a 5, false en caso contrario
import { of } from "rxjs";
import { every } from "rxjs/operators";
of(1, 2, 3, 4, 5, 6)
.pipe(every((x) => x < 5))
.subscribe((x) => console.log(x)); // -> false
Documentación oficial en inglés