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'(不知道我自己没有使用它们)。 –