【发布时间】:2017-08-08 01:21:12
【问题描述】:
我正在构建一个移动应用程序,现在我正在处理身份验证。在我点击我的主页之前,我需要在我构建的 API 上点击各种端点,然后才能向用户显示数据。
在 Postman 中测试时,所有端点都返回了正确的数据,但是当我在我的应用程序中使用它时,我在第二次异步调用中得到了一个 null 值。
我确信这与进行这些调用的顺序有关,因此我只是在寻求一些帮助,以了解如何在开始另一个调用之前正确等待一个调用完成。
public login() {
this.showLoading();
this.userService.getUserIdFromUserName(this.registerCredentials.username) // WORKS
.subscribe(
res => {
console.log(res);
localStorage.setItem("UserId", res.toString());
},
err => {
console.log(err);
});
this.userService.getEmployeeIdFromUserId(localStorage.getItem("UserId")) // THIS RETURNS NULL
.subscribe(
res => {
console.log(res);
localStorage.setItem("EmployeeId", res.toString());
},
err => {
console.log(err);
});
this.authService.login(this.registerCredentials)
.subscribe(
data => {
this.loading.dismissAll();
console.log('User logged in successfully! ', data);
this.nav.push(TabsPage);
localStorage.setItem("Username", this.registerCredentials.username);
localStorage.setItem("isLoggedIn", "true");
},
error => {
this.loading.dismissAll();
this.showAlert("Uh oh!", "Something went wrong. Please re-enter your login credentials or check your connection.");
console.log(error);
});
}
【问题讨论】:
-
标题为
Angular2,但关键字为angularjs。您可以考虑修改两者之一。 -
你应该在this answer找到你需要的东西。
标签: javascript angular typescript rxjs