我正在向API发送请求,并使用map函数对其进行解析:
//part of service
post(url: string, params): Observable<Response> {
let requestUrl: string = this.apiUrl + url;
return this.http.post(requestUrl, params)
.map(response => response.json());
}
//part of other service
doLogin(login, haslo): Observable<Response> {
return this.apiService.post('auth/login/', {login: login, haslo: haslo});
}
作为结果,我会得到一个布尔值并在订阅函数中使用它。
this.authService.doLogin(this.model.login, this.model.haslo)
.subscribe(result => {
//result is boolean - not Response
this.authService.loggedIn = result;
this.result = result
});
问题在于doLogin
的订阅者中,TypeScript指出结果是Response
而不是boolean
- 我该如何解决这个问题?
Post
方法将结果转换为json(可以是任何数据),因此它应该是Observable<Object>,而doLogin
可以是Observable<boolean>,但typescript不同意-它必须是Object。最终,result
是Object而不是boolean :/ - piernik