[英]Await before returning the observable in Angular HttpClient
我在 angular 中有一個服務方法,它調用 HttpClient get 方法如下
searchItem(name: string) {
const headers = await this.getHeaders();
return this.httpClient.get<Item[]>(environment.itemService + `items/searchByItem/${name}`, {headers: headers});
}
到目前為止,我一直在沒有標題的情況下使用它,並且在我訂閱每個這樣的方法的組件中。
現在我必須為標題調用這個getHeaders()
async
方法並在調用 API 之前設置它們。 所以問題是第一行返回promise
,第二行返回Observable
。 如何獲取標頭,調用 API 並像以前一樣返回一個 Observable 作為此searchItem
的最終結果?
await 僅在異步 function 中有效。 'await' 表達式只允許在異步函數中和模塊的頂層使用。 您需要在 function 定義之前使用async
。
async searchItem(name: string) {
const headers = await this.getHeaders();
return this.httpClient.get<Item[]>(environment.itemService + `items/searchByItem/${name}`, {headers: headers});
}
或等待 promise 使用then
方法完成詢問,如下所示。
searchItem(name: string) {
return this.getHeaders().then(headersVal => {
return this.httpClient.get<Item[]>(environment.itemService + items/searchByItem/${name}`, {headers: headersVal});
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.