Tengo una pregunta.
Encontré un error extraño que no puedo reproducir en mi máquina. Mi aplicación tiene un flujo como este:
ngOnInit(): void { this.param1= this.router.url.split('/')[2]; this.param2 = this.router.url.split('/')[3]; //Do a POST request to backend apiCall(param1, param2);Luego reviso el registro de publicación y aquí es donde encontré el error, a veces param1 en el cuerpo de la solicitud contiene la cadena "indefinido" en lugar de la cadena real de la URL (param1).
Lo que me lleva a esta pregunta: ¿la función del enrutador es asíncrona? También llené param1 y param2 con una cadena vacía antes de intentar obtener parámetros de la URL, por lo que no sé cómo se puede llenar con una cadena "indefinida". También intenté obtener parámetros a través de Route paramMap activado y sigue ocurriendo el mismo problema.
¡Gracias!
El enrutador es asíncrono, debajo de un ejemplo de código para obtener parámetros de URL.
private ngOnInit(): void { this.route.queryParams.pipe( map(params => [params['id1'],params['id2']]), tap(([a1,a2]) => {console.log("A1:",a1,"A2:",a2)}), catchError((err) => { return throwError(()=>new Error(`Error : ` + err)) }) ).subscribe({next: ([a1,a2])=>{apiCall(a1,a2)}}); }