环境 AngularJS 4
我尝试在函数中运行HTTP请求,但我无法将结果发回。
Beloow发布了一些评论我的代码。
我只需要true
或false
值,但我什么也得不到。
我在这个问题上挣扎了一段时间,但没有找到解释和解决方案。有人可以给我一个暗示吗?
public runLoginProcess(username:String, password:String):boolean{
let body= { "username":username,"password":password };
let head = new Headers();
head.append("Content-Type", "application/json");
head.append("Accept", "application/json");
// RUN THE HTTP CALL AN IF IT WORKS, SEND TRUE AND ERROR IN CASE OF AN ERROR BACK
this.http.post("<PATH TO MY SERVICE>", body)
.subscribe(response => {
let token = response.json() && response.json().token;
if (token) {
localStorage.setItem('currentUser', JSON.stringify({"username": username, "token": token}))
return true;
}
},
error2 => {
return false;
}
);
}
答案 0 :(得分:2)
你对可观测量的态度是完全的。你的runLoginProcess函数没有返回任何东西,订阅函数根本不应该返回。你应该使用它的方式更像是
64 2e 65 78 65 fs cs gs js,pn 0x4010cb
&#13;
这样,您从帖子中获取响应,将其映射为布尔值,将该可观察序列返回给调用者,然后调用者订阅observable并在订阅中接收布尔值。
记住observable只是如何处理值流的定义。