我无法获得并设置为会话以下是我的代码:
login_btnClick() {
var NTLoginID = ((document.getElementById("NTLoginID") as HTMLInputElement).value);
this._homeService.get(Global.BASE_USER_ENDPOINT + '/EmployeeDetailsApi?user_id=' + NTLoginID)
.do(data => sessionStorage.setItem('session',JSON.stringify(data)))
.subscribe(homes => { this.homes = homes; this.indLoading = false; },
error => this.msg = <any>error);
var session = sessionStorage.getItem('session');
alert(JSON.stringify(session));
this.router.navigateByUrl('/user');
}
我只得到null,而不是确切的值。我从.do(data => alert(JSON.stringify(data)))
获得了价值。我是angular2的新手。请帮忙。
答案 0 :(得分:0)
Angular 2中的Http请求(或几乎任何地方)都是异步的。这意味着一旦你的代码到达.do(),它就不会等待响应,而是继续运行你的程序。像这样更改代码可以解决您的问题:
this._homeService.get(Global.BASE_USER_ENDPOINT + '/EmployeeDetailsApi?user_id=' + NTLoginID)
.do(data => sessionStorage.setItem('session',JSON.stringify(data)))
.subscribe(homes => {
this.homes = homes;
this.indLoading = false;
var session = sessionStorage.getItem('session');
alert(JSON.stringify(session));
this.router.navigateByUrl('/user');
},
error => this.msg = <any>error);