Sé cómo combinar observables y obtener el resultado cuando todos los observables emiten al menos un valor (combineLatest, forkJoin, etc.).
Pero, ¿cómo puedo emitir un valor cuando uno de los muchos observables emite un valor?
Por ejemplo:
const adModelChangedObs$ = this.editAdService.adModelChanged; // Angular subject one const refreshPreviewClickedObs$ = this.editAdService.refreshPreviewClick // Angular subject two merge([adModelChangedObs$, refrshPreviewClickedObs$]).subscribe(() => { console.log('One of the two observables emitted a value'); });El controlador de suscripción no se está ejecutando, aunque lo probé con muchos operadores RxJS hasta ahora.
Como se menciona en los comentarios, la función de combinación debería ayudar en su caso, sin embargo, debe pasar los observables como argumentos, no como una matriz.
Puedes probarlo de la siguiente manera:
// import { merge } from 'rxjs'; const adModelChangedObs$ = this.editAdService.adModelChanged; // Angular subject one const refreshPreviewClickedObs$ = this.editAdService.refreshPreviewClick; // Angular subject two merge(adModelChangedObs$, refrshPreviewClickedObs$).subscribe(() => { console.log('One of the two observables emitted a value'); }); Sin embargo, si eso no funciona, debe asegurarse de que sus observables editAdService emitan el valor correctamente.