single
Emite si solo existe un único valor que cumpla la condición
Descripción
Es como first, pero emite un error si hay más de un valor.

Retorna un Observable que emite el único valor emitido por el Observable fuente que cumpla la condición especificada, en el caso de que exista dicho valor. Si el Observable fuente emite más de un elemento que cumpla la condición, o no emite ningún elemento, se lanzarán un IllegalArgumentException o un NoSuchElementException respectivamente.
Si el Observable fuente emite elementos, pero ninguno cumple la condición especificada, se emitirá undefined.
Ejemplos
Emitir el único elemento que cumpla la condición
import { single } from "rxjs/operators";
import { from } from "rxjs";
const language$ = from([
{ name: "Java", type: "Orientado a objetos" },
{ name: "Ruby", type: "Multiparadigma" },
{ name: "Haskell", type: "Funcional" },
]);
language$
.pipe(single(({ type }) => type === "Multiparadigma"))
.subscribe(console.log);
// Salida: { name: "Ruby", type: "Multiparadigma" }Si hay más de un elemento que cumpla la condición, se lanzará un error
Si no hay ningún elemento que cumpla la condición, se emitirá undefined
Ejemplos de la documentación oficial
Emitir 'Error'
Emitir 'undefined'
Recursos adicionales
Last updated