我在提供程序中有一个方法
getProfile() {
let headers = new Headers();
this.loadToken();
headers.append('Authorization', this.authToken);
headers.append('Content-Type','application/json');
return this.http.get(this.db_url + 'profile',{headers: headers})
.map(res => res.json());
}
我在另一个提供商中调用上述方法
getProfile() {
this.authService.getProfile().subscribe((profile: any) => {
this.profile = profile.user._id;
},(err : any) => console.log(err))
}
在这里,我想停止执行代码,直到执行this.profile = profile.user._id
这行为止。在声明provider
方法的同一getProfile()
中,我的http请求为< / p>
let headers = new Headers();
headers.append('Content-Type','application/json');
let selected = {
address: home.address,
date: new Date(),
id: this.profile // from the getProfile() file.
}
console.log(selected);
id
的输出为undefined
。我认为这里存在异步。
答案 0 :(得分:1)
将此代码放入类似的函数中
setHeadres(){
let headers = new Headers();
headers.append('Content-Type','application/json');
let selected = {
address: home.address,
date: new Date(),
id: this.profile // from the getProfile() file.
}
}
并在getProfile()
函数内部调用此函数,如下所示:
getProfile() {
this.authService.getProfile().subscribe((profile: any) => {
this.profile = profile.user._id;
this.setHeaders();
},(err : any) => console.log(err))
}