Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

332
Views
Angular TypeScript: esperando que se ejecute un método nulo antes que otro método

Tengo un método en un componente Angular que extrae datos a través de la suscripción HttpClient y los asigna a un atributo this.allData, luego instancia un diccionario vacío de parámetros basado en esto, para pasar a una segunda función:

 export class TestComponent implements OnInit { allData: object[] = [] activeData: object = {} constructor(private http: HttpClient) { } ngOnInit(): void { this.getData() this.makeRequestBasedOnData() } getData() { this.http.get(this.url).subscribe(res => { for (let datum of res["data"]) { this.allData.push({ "key": Object.keys(datum)[0], "values": Object.values(datum)[0] }) this.activeData[Object.keys(datum)[0]] = "" } }) } makeRequestBasedOnData() { let testParams = this.activeData console.log(testParam) } }

Necesito que estos pasos sucedan secuencialmente. Por el momento, registrar testParams en makeRequestBasedOnData() simplemente muestra un objeto vacío {} . Cuando trato de regresar arbitrariamente en el primer método, aparece un error de TypeScript que no puede asignar una promesa para escribir void .

¿Cómo hago cumplir la sincronicidad aquí a pesar de que ninguno de los métodos realmente devuelve nada?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Puede devolver Observable desde el método getData y continuar con cualquier otro método dentro de la suscripción:

 ngOnInit(): void { this.getData().subscribe(() => this.makeRequestBasedOnData()); } getData() { return this.http.get(this.url).pipe( tap(res => { // update allData }) ); }

dónde:

  • El método pipe nos permite proporcionar cualquier tipo de transformación con los datos devueltos por http.get(...) .

  • tap es un operador rxjs para efectos secundarios, lo que significa que podemos hacer todo lo que queramos con la respuesta sin modificar el flujo de Observable.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!