【发布时间】:2021-09-12 09:46:02
【问题描述】:
我目前正在尝试实现一个会员门户,当我提交表单时,我想发布会员并立即从输入的 ID 号中检索会员的价值。
我的提交函数如下:
submitForm() {
const data = this.memberForm.value;
console.log(data);
this.service.postNewMember(data.title, data.firstname, data.surname, data.telRes, data.faxNbr, data.email, data.idNbr);
this.service.getMember(data.idNbr).subscribe((res: any) => {
console.log(res);
}, (err: any) => {
console.log(err);
});
}
我的服务中的两个功能如下:
getMember(idNbr: string) {
return this.http.get(this.url + '/crm/getMember/'+ idNbr)
}
postNewMember(title: string, firstName: string, surName: string, telRes: string, faxNbr: string, email: string, idNbr: string) {
const headers = new HttpHeaders().set('Content-Type', 'application/json');
const newMember = {
title: title,
firstName: firstName,
surName: surName,
telRes: telRes,
faxNbr: faxNbr,
email: email,
idNbr: idNbr
}
this.http.post(this.url + '/crm/postNewMember', JSON.stringify(newMember), { headers: headers }).subscribe((res: any) => {
console.log(res);
})
}
我已经分别测试了这两个服务调用,它们都运行良好,但往往会发生 get 方法 get 在 post 方法完成执行之前调用,因此我在控制台中记录了一个错误,同时根据需要插入的数据。但是我需要 get 方法数据来对其执行进一步的操作,因此我需要在 post 方法之后执行它。
如何确保 service.getMember() 在 service.postNewMember() 之后执行?
【问题讨论】:
-
为什么不传递一个对象而不是向
postNewMember发送7或9个参数?重构该函数
标签: angular angular-http