Emite las emisiones del Observable fuente siempre y hasta cuando cumplan la condición especificada. Se completa en cuanto haya un valor que no cumpla la condición
MonoTypeOperatorFunction<T>: Un Observable que emite los valores del Observable fuente siempre y cuando cada valor cumpla la condición especificada.
Descripción
Emite los valores del Observable fuente mientras cumplan la condición especificada. En cuanto un valor no la cumpla, se completa.
takeWhile se suscribe al Observable fuente y comienza a reflejarlo. Cada valor que se emita en la fuente, se proporciona a la función predicate, que retorna un valor booleano. Este valor indica si el valor cumple o no la condición especificada. El Observable resultante emite los valores del Observable fuente hasta que la condición deje de cumplirse. En ese momento, takeWhile deja de emitir los valores del Observable fuente y hace que el Observable resultante se complete.
import { from } from"rxjs";import { takeWhile } from"rxjs/operators";constprogrammingLanguage$=from([ { name:"Simula", type:"Object-oriented" }, { name:"Java", type:"Object-oriented" }, { name:"Wolfram", type:"Declarative" }, { name:"Ruby", type:"Multiparadigm" },]);// Si se proporciona el valor true como segundo argumento (parámetro inclusive), el primer elemento que no cumpla la condición también se emite
programmingLanguage$.pipe(takeWhile(({ type }) => type ==="Object-oriented",true)).subscribe(console.log);// Salida: { name: "Simula", type: "Object-oriented" }, { name: "Java", type: "Object-oriented" }, { name: "Wolfram", type: "Declarative" }
Ejemplo de la documentación oficial
Emite los eventos click mientras su propiedad clientX sea mayor a 200