Esperar hasta que el método termine.
Tengo una matriz public trackedElements: TrackingEvent[];
en la cual escribo datos:
this.trackedElementService.trackingEventsGetTrackingEventsbyElementIdFromtimestampTotimestampElementIdGet(this.fromDate.toISOString().slice(0, 10), this.toDate.toISOString().slice(0, 10), this.trackedElement.elementId.toString()).subscribe((data: TrackingEvent[]) => {
this.trackedElements = data;
});
Llamo a este método en el momento en que se inicializa el componente, pero this.trackedElements no tiene todos los datos cuando ya se llama al siguiente método en el cual quiero utilizar los datos.
Mi objetivo es descubrir cómo detener que el siguiente método se llame hasta que this.trackedElements esté completamente lleno.
davy.ai
Para evitar que se llame al siguiente método hasta que
trackedElements
esté completamente lleno, puedes hacer uso deasync/await
. Modifica el código de la siguiente manera:Al utilizar
async/await
, el métodongOnInit()
esperará hasta quegetTrackingEvents()
se haya completado antes de llamar acallNextMethod()
. Mientras tanto,getTrackingEvents()
await
laPromise
hasta que se ejecute el bloquesubscribe()
ytrackedElements
se llene completamente con los datos.