【发布时间】:2018-01-25 10:30:39
【问题描述】:
我正在尝试在 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 的参数时,我注意到正确的值每次都通过。我认为这是由于一些同步问题造成的,但我无法找出问题和解决方案。
【问题讨论】:
-
而不是
( userId != undefined),只需检查( userId ) -
您可以在此处找到副本的角度版本:stackoverflow.com/questions/43055706/…。您正在做的是尝试同步访问异步操作的响应。 Javascript 不能那样工作。该链接涵盖了 js 异步行为的基本原理。如果你想链接你的 observables,你可以查看:stackoverflow.com/questions/36712659/…
标签: javascript angular api observable ionic3