Estoy haciendo una solicitud de publicación, pongo la variable this.metodo=res, pero cuando pongo console.log(this.metodo) o trato de usar el filtro, devuelve undefined
ngOnInit(): void { this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).subscribe((res: any[]) => { this.metodo = res; }); console.log(this.metodo) filterMetodos(){ return this.metodo.filter( metodos => metodos.nome ); }el json
{ "id": 1, "emp_id": 1, "nome": "Retirada na Loja", "tipo": "RETIRA", "subtipo": null, "latLng": [-25.45264, -49.26653], "vFreteMin": 0, "vFreteGratis": null, "periodos": [ { "id": 8, "transporte_id": 1, "ativo": 1, "periodo": "Comercial (das 8h \u00e0s 19h)", "corte": "17:00", "data": null, "week": [] } ]},
getTransporteMetodo(empId){ return this.http.post(environment.API_URL + 'transporte/getAll', { empId });}
Mueva su registro dentro de la devolución de llamada de suscripción
this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).subscribe((res: any[]) => { this.metodo = res; console.log(this.metodo) });La razón por la que no está definido es que el método es asnyc. Entonces intenta acceder a la variable antes de ser inicializada. Si desea filtrar la respuesta, coloque el filtro en el método de suscripción.
algo como esto:
this.cartS.getTransporteMetodo(this.storeS.layout.emp.id).subscribe((res: any[]) => { this.metodo = res.filter(item=>nome); });