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

351
Vistas
Error de retorno de forkJoin Proporcionó 'indefinido' donde se esperaba una transmisión

Previamente, pregunté un problema sobre la devolución de httprequest anidada con subsolicitud de espera.

https://stackoverflow.com/questions/69308614/angular-map-wait-observable-to-complete[Angular map wait Observable to complete] 1

Le hice algunos cambios, pero arroja un error.

Error: proporcionó 'indefinido' donde se esperaba una transmisión. Puede proporcionar un Observable, Promise, Array o Iterable.

Aquí está mi código de actualización

 test2(): Observable<Student[]> { return this.test1().pipe( mergeMap((result) => { if (!result) { return of(result); } return forkJoin( result.map((rr) => { if (rr.age === 1) { rr.age = rr.age * 10; return of(rr); } else { this.client .get('https://api.coindesk.com/v1/bpi/currentprice.json') .pipe( map((res) => { console.log(res); rr.age = rr.age * 10000; return rr; }) ); } }) ).pipe( map((paths) => { console.log('w'); console.log(paths); return paths; // return result.map((e, index) => ({ // age: paths[index], // })); }) ); }) ); }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema en su código es que está utilizando una condición dentro de su .map . Si está utilizando una condición en la función .map , debe agregar return porque, como indica el error, se esperaba una transmisión en lugar de indefinida. Para que pueda proporcionar un observable, debe devolver su observable dentro de su condición if-else .

En el siguiente código, agregué la palabra clave return en su of() y en su llamada http . También creé un stackblitz que contiene mi solución para que lo verifiques.

 test2(): Observable < Student[] > { return this.test1().pipe( mergeMap((result) => { if (!result) { return of(result); } return forkJoin( result.map((rr) => { if (rr.age === 1) { rr.age = rr.age * 10; return of(rr); } else { return this.client .get('https://api.coindesk.com/v1/bpi/currentprice.json') .pipe( map((res) => { console.log(res); rr.age = rr.age * 10000; return rr; }) ); } }) ).pipe( map((paths) => { console.log('w'); console.log(paths); return paths; }) ); }) ); }
over 4 years ago · Santiago Trujillo 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