Im работает с Ionic2 + Laravel. Im пытается сделать «перехватчик», который будет помещать заголовок маркера (JWT) для auth из LocalStorage во всех моих запросах Http.
Итак, я сделал службы с помощью метода:Подождите, когда закончите наружную функцию
post(url : string, json : any) : Observable <\Response> {
var headers = new Headers();
var token = null;
this.local.get("token").then((tk) => {
headers.append('Authorization', 'Bearer ' + tk);
var options = new RequestOptions({headers: headers});
token = tk;
});
-> wait the 'token' != null <-
return this.http.post(url, JSON.stringify(json), options);
}
проблема:
Я ожидаю "Observable < \ Response> http.post()" вернуться когда вызов пост () от этой услуги.
Но, мне нужно, что «this.local.get()« Обещай закончить решение, потому что мне нужен токен из LocalStorage для добавления в заголовок.
Как я могу сделать «this.local.get()« Пообещайте, получите токен, и объявите Observable http.post() и верните его? (к внешней функции)
Я просто не могу найти способ сделать это. Какие-либо предложения? Спасибо: DD
вау, спасибо быстро ответить. Уже пробовал. Как я уже сказал, им ожидается ожидание <\Response>. Итак, я получил ошибку машинописного текста: «Ошибка TS2322: тип« Promise »не может быть присвоен типу« Observable »« –
Даже если я удаляю возвращаемый тип, я получил ошибку, например «Property 'map» не существует на type 'Promise' "вызвать im call -> map() и карта является наблюдаемым funcion (не Promise ) –
Наконец, я пытаюсь вернуть результат с>, и я получил« Ни одного типа »Promise 'и тип' Observable 'присваивается другому "= //// –