last<T, D>(predicate?: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>
predicate | Opcional. El valor por defecto es undefined .
La condición que el elemento emitido por la fuente debe cumplir. |
defaultValue | Opcional. El valor por defecto es undefined .
El valor por defecto opcional que se emitirá en el caso de que ningún elemento cumpla la condición o si no se emite ningún valor. |
OperatorFunction<T, T | D>
: Un Observable que emite el último elemento del Observable que cumpla la condición, o un NoSuchElementException
si no se emite ningún elemento.
EmptyError
Propaga un EmptyError
a la callback de error del Observable si este se completa antes de emitir alguna notificación next
.
Error
- Se lanza en el caso de que ningún elemento cumple la condición especificada por el Observable fuente.
Retorna un Observable que emite el último elemento emitido por el Observable fuente. Opcionalmente recibe una función predicate
como parámetro, en cuyo caso, en lugar de emitir el último elemento del Observable fuente, el Observable resultante emitirá el último elemento del Observable fuente que cumpla la condición especificada.
Emitir la última cadena de una secuencia
import { last } from "rxjs/operators";
import { from, fromEvent } from "rxjs";
const fruit$ = from(["Cereza", "Fresa", "Arándano"]);
fruit$.pipe(last()).subscribe(console.log);
// Salida: Arándano
Emitir el último elemento que cumpla una condición
import { of } from "rxjs";
import { last } from "rxjs/operators";
const user$ = of(
{ name: "NyaGarcía", age: 23 },
{ name: "zaldih", age: 21 },
{ name: "caballerog", age: 35 },
{ name: "carla.1003", age: 21 }
);
user$.pipe(last(({ age }) => age === 21)).subscribe(console.log);
// Salida: { name: 'carla.1003', age: 21 }
Proporcionar un valor por defecto, que será emitido si ningún elemento cumple la condición
import { last } from "rxjs/operators";
import { from } from "rxjs";
const language$ = from([
{ name: "Haskell", type: "Funcional" },
{ name: "Ruby", type: "Multiparadigma" },
{ name: "Rust", type: "Multiparadigma" },
]);
language$
.pipe(
last(({ type }) => type === "Orientado a objetos", {
name: "Java",
type: "Orientado a objetos",
})
)
.subscribe(console.log);
// Salida: { name: "Java", type: "Orientado a objetos" }
last(predicate?: null, defaultValue?: D): OperatorFunction<T, T | D>
predicate | Opcional. El valor por defecto es undefined .
Tipo: null . |
defaultValue | Opcional. El valor por defecto es undefined .
Tipo: D . |
OperatorFunction<T, T | D>
last(predicate: (value: T, index: number, source: Observable<T>) => value is S, defaultValue?: S): OperatorFunction<T, S>
predicate | Tipo: (value: T, index: number, source: Observable) => value is S . |
defaultValue | Opcional. El valor por defecto es undefined .
Tipo: S . |
OperatorFunction<T, S>
last(predicate: (value: T, index: number, source: Observable<T>) => boolean, defaultValue?: D): OperatorFunction<T, T | D>
predicate | Tipo: (value: T, index: number, source: Observable) => boolean . |
defaultValue | Opcional. El valor por defecto es undefined .
Tipo: D . |
OperatorFunction<T, T | D>
Documentación oficial en inglés