Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda