Рассмотрим следующий пример:
login(context: LoginContext): Observable<Credentials> {
let credentials = JSON.stringify(context);
this.httpClient.post("http://localhost:64636/api/Account/login", credentials, {
headers: new HttpHeaders({
"Content-Type": "application/json"
})
}).subscribe(response => {
let token = (<any>response).token;
const data = {
username: context.username,
token: token
};
this.setCredentials(data, context.remember);
return of(data);
}, err => {
});
}
Здесь то, чего я пытаюсь добиться, - это инкапсулировать данные, полученные от httpClient
, и вернуть их, но это делается после завершения выполнения httpClient. Компилятор говорит мне, что «функция, объявленный тип которой не является ни «пустым», ни «любым», должна возвращать значение», и это правильно. Мой вопрос: как решить такую проблему, когда родительский наблюдаемый должен ждать, пока наблюдаемый httpClient.post() завершит свою задачу?
return
передthis.httpClient.post...
и подписаться наlogin
? - person Jacopo Sciampi   schedule 05.10.2018