¿Cuál es la mejor manera de hacer solicitudes?
Tengo un método de http request en project.service.ts . Puedo hacer la solicitud con la siguiente estructura:
getProjectById(projectId: number) { return this.http.get<Project>(`${this.url}/search/projects/${projectId}`).toPromise(); } Y llámelo con la siguiente estructura en project.component.ts :
async getProject(projectId: number) { this.isLoading = true; try { this.project = await this.api.projects.getProjectById(projectId); } finally { this.isLoading = true; } }Pero también puedo hacer la solicitud de esta manera:
async getProjectById(projectId: number) { return await this.http.get<Project>(`${this.url}/search/projects/${projectId}`).toPromise(); }O esto:
getProjectById(projectId: number): Observable<Project> { return this.http.get<Project>(`${this.url}/search/project/${projectId}`); } Pero tendría que subscribe a esta función.
Esto es más bien una cuestión de diseño de código y código limpio, que de eficiencia. Creo que seguir las pautas del módulo Http incorporado de Angular.
Debe mantener el código limpio y seguir el flujo de RxJS, en lugar de convertirlo en código asíncrono.
Así que necesitas usar esto:
getProjectById(projectId: number): Observable<Project> { return this.http.get<Project>(`${this.url}/search/project/${projectId}`); }Si no tienes razón, no te compliques.