1
我有一個用例的地方將是巨大的,如果有可能以某種方式返回.then()
檢索到的值。角2 - 返回`then`內 - 異步
讓我告訴你爲什麼,什麼和希望。
幾乎在每個API調用中,我都希望沿API_KEY
和DEVICE_ID
發送。現在對於UX原因,這些值wihin在本地存儲稱爲user
對象(將安全存儲以後)。
這裏的事情是,我headers
將在第一行創建的空頭。這是有道理的,因爲.then()
將是異步的。
getUserHeaders(): Headers {
let headers: Headers = new Headers();
let user = NativeStorage.getItem("user").then(
data => {
headers.append('API_KEY', data.json().apiKey);
headers.append('DEVICE_ID', data.json().deviceId);
},
error => {
console.log("error");
headers.append('API_KEY', 'TEST');
headers.append('DEVICE_ID', 'TEST');
}
);
return headers;
}
現在我想做的是在每次調用有:F.E.
this.http.get('someUrl', { headers: this.getUserHeaders() }).map(..);
我的問題是,我怎麼能返回頭無論是從data
和error
塊內,或者我應該嘗試一個完全不同的方法?
這樣的話它會成爲像'this.getUserHeaders()即可。 (headers => this.http.get('someUrl',{headers:headers}).map(...))'right? – Ivaro18
但這意味着我的API調用將返回一個可觀察的承諾? :o – Ivaro18
您還可以使用可觀察到的頁眉和使用'mergeMap'或其他一些運營商。也許可觀察的運營商也支持'Promise'(不知道我自己沒有使用它們)。 –