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

200
Vistas
¿Cómo devolver declaraciones múltiples en angular?

Estoy creando una página de inicio de sesión y quiero llamar a /login y /send-otp api juntos mediante una sola función. Ya he creado una página de inicio de sesión y registro.

Mi código :

usuario-datos.servicio.ts :

 import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable({ providedIn: 'root' }) export class UserdataService { url= 'http://localhost:9197/register'; url2= 'http://localhost:9197/login'; url3= 'http://localhost:9197/send-otp'; constructor(private http:HttpClient) {} saveRegistration(data:any){ return this.http.post(this.url, data); } loginDone(ldata:any){ return this.http.post(this.url2, ldata); return this.http.post(this.url3, ldata); } }

¿Cómo llamar a multiplicar api?

 loginDone(ldata:any){ return this.http.post(this.url2, ldata); return this.http.post(this.url3, ldata); }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Aplique la definición de alias de TypeScript a su código:

Aquí, de una manera más simplificada, tiene un retorno múltiple con una estructura de alias.

 type multi={ x:PelotaAzul, y:PelotaRugosa, } function multiple():multi{ let x:PelotaAzul=new PelotaAzul("jj",5); let y:PelotaRugosa=new PelotaRugosa("s",3,6) let ab : multi ={x,y}; return ab; }

También puede devolver una matriz de ambos parámetros como este

 loginDone(ldata:any){ return [this.http.post(this.url2, ldata),this.http.post(this.url3, ldata)]; }

Creo que crear alias es más elegante, pero para obtener resultados más rápidos, haga el segundo.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Probablemente estés extrañando pensar en tu problema.

Ante todo. Una declaración de retorno siempre detendrá la ejecución de la función, no importa si hay 100 líneas después.

En segundo lugar, su lógica probablemente será: llame al inicio de login primero y luego (usando o no la respuesta) llame al send-otp .

O bien, su lógica podría ser: llamar al inicio de login y send-otp mismo tiempo, pero el método loginDone solo debería devolver un estado válido si ambas solicitudes funcionan bien.

Es por eso que otras respuestas son completamente incorrectas.

Debe conectar en cascada sus observables usando pipe y switchmap, por ejemplo:

 return of([this.url2, this.url3]).pipe( switchMap((url) => this.http.post(url, ldata)) )
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea devolver varios valores, puede hacerlo así.

 import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; @Injectable({ providedIn: 'root' }) export class UserdataService { url= 'http://localhost:9197/register'; url2= 'http://localhost:9197/login'; url3= 'http://localhost:9197/send-otp'; constructor(private http:HttpClient) {} saveRegistration(data:any){ return this.http.post(this.url, data); } loginDone(ldata:any){ return {url1: this.url, url2: this.url2, url3: this.url3}; } }

Si desea llamar a múltiples api, marque este.

https://medium.com/bb-tutorials-and-thoughts/how-to-make-parallel-api-calls-in-angular-applications-4b99227e7458

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