http通讯每次请求获得的都是上一次的值
来源:8-3 http通讯

Niweisi
2017-05-22
onLoggedin() { let loginHeaders:Headers = new Headers(); let loginSearch:URLSearchParams = new URLSearchParams(); let value = this.formModel.value; let loginUrl:string; let dataSource:Observable<any>; loginHeaders.append("Authorization","Basic 123456");//请求头 loginHeaders.append('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8'); loginSearch.append('username',value.username); loginSearch.append('password',value.password); loginSearch.append('code',value.code); loginUrl = '/api/login'; //post请求 dataSource = this.http.post(loginUrl,loginSearch,{headers:loginHeaders}).map((res) => res.json()); dataSource.subscribe( (data) => this.loginHttp = data ); //问题在这里,每次输出loginHttp都是上一次的,并不是当前获取的,求解决 console.log(this.loginHttp['status']); }
写回答
1回答
-
把console.log写到回调里面,http请求是异步处理的,你上面那个回调还没执行呢,下面已经打日志了,当然打的是上一次的:
dataSource.subscribe(
(data) => {
this.loginHttp = data;
console.log(this.loginHttp['status']);
}
);
012017-05-24
相似问题