Я пытаюсь создать crud в Ionic, который одновременно использует Angular, поэтому проблема возникает, когда я использую API через HttpClient, и когда я сохраняю данные, я сохраняю их в переменной, но при печати в console.log он кажется неопределенным
Мой код в файле api-res.service.ts
getEmpresa(){
return this.http.get(`${this.url}/empresa`);
}
код в файле home.page.ts
async cargarRegistro(){
this.loading = await this.loadingCtrl.create({message: "Cargando..."});
this.loading.present();
this.service.getEmpresa().subscribe(result =>{
this.arrayEmpresa = result;
});
console.log(this.arrayEmpresa);
}
, и я загружаю его в метод ngOnInit
ngOnInit() {
this.cargarMapa();
}
проблема возникает, когда я хочу получить данные массива массива, поэтому он возвращает меня бесконечно. Я объявляю эту переменную наверх как глобальную или просто помещаю arrayCompany и все. Но я не знаю, почему вы не возвращаете данные результата в значение, какое-либо решение?
subscribe
одна operaciГіn асинхронная и загружает твою переменную this.arrayEmpresas
в другом моменте после console.log
Ты cГіdigo должна оставаться asГ -
async cargarRegistro(){
this.loading = await this.loadingCtrl.create({message: "Cargando..."});
this.loading.present();
this.service.getEmpresa().subscribe(result =>{
//Esto se ejecuta despues
this.arrayEmpresa = result;
//
console.log(this.arrayEmpresa); //<=== Dentro del subscribe
});
//Esto se ejecuta primero
//...mas codigo...
}
Операции asГ-ncronas пошли ты начинаешь для того, чтобы она aplicaciГіn он не заморозился в течение нее ejecuciГіn тех же самых. Угловой эта diseГ±ado, чтобы работать таким образом asГ - что, когда он обнаружит изменение в this.arraEmpresa
, это покажет способа automГЎtica.
Другой способ это решать состоит в том, чтобы ты поместил await
перед твоей операцией как ты это делаешь с this.loading
async cargarRegistro(){
this.loading = await this.loadingCtrl.create({message: "Cargando..."});
this.loading.present();
this.arrayEmpresa = await this.service.getEmpresa()
console.log(this.arrayEmpresa); //<=== Así si funciona
//Esto se ejecuta despues
//...mas código...
}