在console.log中显示后的未定义值

时间:2019-01-24 18:56:09

标签: angular components observable angular-httpclient

我正在构建一个应用程序,该应用程序将object_1发布到表中,然后收集插入json响应中的ID。之后,我要发布另一个object_2,该对象也使用我的第一个对象插入的ID,但是问题是,插入的ID始终未定义

//******** The interface **********
export interface PostResult__ {
fieldCount: number;
affectedRows: number;
insertId: number;
serverStatus: number;
warningCount: number;
message: string;
protocol41 : boolean;
changedRow :number;
}



//***** The service : ***********
export class AdressePostaleService {

constructor(private http: HttpClient) {}

addAdressePostale(adressepostale: AdressePostale): Observable<PostResult__>     
{
return this.http.post<PostResult__>    
(environment.apiUrl+'/api/adressespostale', adressepostale).pipe( 
catchError(this.handleError)
);
}
}

********* The component / The function that post the object ***************

PostID : PostResult__[]=[];
//Function Ajouter Agence dans la BDD

AjouterAdresse(){
    //Créer l'adresse postale
this._AdressePostale.Numero=this.firstFormGroup.value.Num_adresse;
this._AdressePostale.Voie=this.firstFormGroup.value.Voie_adresse;
this._AdressePostale.ID_Ville = this.VilleSelec.ID_Ville;

this.adresseservice.addAdressePostale(this._AdressePostale).subscribe(
adresse__=> this.PostID.push(adresse__));

console.log(this.PostID[0]);
}

实际结果: console.log(this.PostID [0]); =未定义

执行结果: console.log(this.PostID [0]); =具有最后一个insertID的json文件

1 个答案:

答案 0 :(得分:0)

<Bike/>是异步的。 SubscribeConsole.log完成之前正在运行,请将subscribe移到console.log块内。

subscribe

}