Estoy buscando algunas opiniones para implementar una recuperación 'silenciosa' desde un punto final de datos dado.
Actualmente tengo una implementación para obtener datos en el componente init como era de esperar
//apiService.ts getData(params): Promise < Member[] > { return this.httpService.doRequest(`${this.baseUrl()}/member`, 'get', convertToQueryParams(params), null); } //component.ts this.apiService .getData(params) .then((response: any) => { const responseData: Member[] = response.data this.data = responseData.map(member => new Display(member)) }) .catch(e => console.log('error occured while fetching table data. Try again: ', e)) Después de esto, me gustaría implementar una actualización silenciosa en el mismo punto final getData que recupera los datos cada 5 minutos y pinta la página silenciosamente con nuevos datos sin que el usuario se dé cuenta de que los datos se actualizaron. Esto también significa no mostrar ningún tipo de comportamiento de carga o actualización en la página para esta recuperación silenciosa.
Mi organización actualmente usa angular 7 pero planeamos actualizar a angular 12 este año. Cualquier idea o sugerencia será apreciada.
Como está trabajando en Angular, siempre puede usar observables. Veo que está usando una promesa, pero volver a sintonizar un observable es una solución rápida. Puede usar la función de temporizador que hará exactamente lo que desea: https://www.learnrxjs.io/learn-rxjs/operators/creation/timer
Otra opción es usar setInterval y guardar su referencia para que pueda cancelarlo cuando se destruya un componente. https://developer.mozilla.org/en-US/docs/Web/API/setInterval