我正在尝试在ionic3
中实现嵌套的api调用submitLoginForm() {
var username = this.formData.value.username;
var password = this.formData.value.password;
var bodyjson;
var userId;
this.ApidataService.logincheck(username,password).subscribe(data => {
this.logindetail = data;
bodyjson = JSON.parse(this.logindetail._body);
userId = bodyjson.user.id;
if( userId != undefined){
this.ApidataService.userdata(userId).subscribe(data => {
this.userInfo = data;
});
}
console.log(userId);
});
console.log(this.userInfo);
}
现在,当我调用此函数时,嵌套的api为第一次调用返回undefined,然后从第二次调用开始返回正确的值但是当我尝试记录发送到api的参数时,我注意到正确的值每次都过去了。我认为这是由于一些同步问题,但我无法找出问题和相同的解决方案。
答案 0 :(得分:0)
你可以在这里使用var enc = EncryptionConstants()
print(enc.encKey)
。似乎你不需要检索两个请求的结果,因此这应该适合你。
flatMap
然后:
import { Observable } from "rxjs/Observable";
import 'rxjs/add/observable/flatMap';
您可以阅读有关flatMap here
的更多信息