Angular 2 gibt Daten von RxJs zurück subscribe
Ich habe einen Dienst mit einer Authentifizierungsfunktion -
authenticate(username: string, password: string) {
let ret;
let packet = JSON.stringify({
username: username,
password: password
});
let headers = new Headers();
headers.append('Content-Type', 'application/json');
this.http.post('http://localhost:5000/api/authenticate/', packet, {
headers: headers
})
.map(res => res.json())
.subscribe(
data => {
// put return data into ret
ret = data.token;
},
err => console.log(err),
() => {
// this works!
console.log(ret);
}
);
// get's returned before I put data into it
return ret;
}
Also, wenn ich die Authentifizierungsfunktion aufrufeconsole.log(authenticate('a', 'b'));
, es protokolliertundefined
seit derret
ie Variable @ wird zurückgegeben, bevor die Funktion subscribe die Daten darin ablegen kann. Wie kann ich die http-Antwortdaten von der Authentifizierungsfunktion zurückgeben? Ich habe noch nie zuvor eine reaktive Programmierung mit RxJS durchgeführt, und genau das scheint Angle 2 zu verwenden.
PS. Gibt es eine anständige CSP-Lösung für Javascript wie go channels oder core.async?