Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

292
Vistas
¿Por qué Rxjs combineLatest depende de la suscripción y no llama cuando uno de ellos cambia?

Tengo dos elementos de suscripción como ves en la imagen: ingrese la descripción de la imagen aquí

uno de ellos es entrada de búsqueda otro es un filtro de selección. Quiero cambiar el resultado cuando uno o ambos cambian. Uso Rxjs combineLatest de modo que cuando ambos o la entrada de búsqueda cambian, todo está bien, pero al cambiar el tipo de Socio al principio, la respuesta no cambia.

 ngOnInit() { super.ngOnInit(); this.getAllPartners(); combineLatest([this.searchPartnerFc.valueChanges, this.filterFc.valueChanges]) .pipe( switchMap(([search, filter]) => { let partnersBySearch = this.getSearchResult(search); let partnersByFilter = this.getFilterResult(filter); this.partners = partnersBySearch.filter(item => partnersByFilter.indexOf(item) > 0); return this.partners; }), ) .subscribe(); } getFilterResult(filterKey: string) { if (filterKey == 'All') return this.allPartners; else return this.allPartners.filter(partner => partner.partnerType == filterKey); } getSearchResult(searchString: string) { return this.allPartners.filter(x => x.partnerName.toLowerCase().includes(searchString)); }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede lograr el resultado deseado al proporcionar una emisión predeterminada para cada uno de sus observables de origen usando startWith :

 combineLatest([ this.searchPartnerFc.valueChanges.pipe(startWith('')), this.filterFc.valueChanges.pipe(startWith('All')) ]).pipe( ... );
about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que no funciona debido a la naturaleza del operador combineLatest . Solo se emitirá cuando ambos observables hayan emitido primero un valor inicial. Entonces, cuando solo se emite el primer observable y el segundo no, no hará nada: https://www.learnrxjs.io/learn-rxjs/operators/combination/combinelatest

Creo que necesita un operador de combinación aquí:https://www.learnrxjs.io/learn-rxjs/operators/combination/merge

También eche un vistazo aquí en este hilo: Cómo 'esperar' dos observables en RxJS

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda