我有一个移动应用程序,我正在构建,现在我正在进行身份验证。在我打开我的主页之前,我需要在我可以向用户显示数据之前在我创建的API上点击各种端点。Angular 2调用多个异步方法
在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'。你可以考虑修改其中的一个。 – ConnorsFan
你应该在[这个答案]中找到你需要的东西(http://stackoverflow.com/a/35268597/1009922)。 – ConnorsFan