我有一个如下函数,我需要调用服务器并获取函数返回的值。我正在使用 rxjs 订阅。我得到了值,但由于 rxjs 是异步的,因此函数在从服务器获取值之前返回。下面是一个伪代码来解释我想要做什么:
..
let myValue = getValue();
private getValue(): string {
let val = '';
this.httpClient.get('/server url', { observe: "response" }).subscribe(res => {
val = res.headers.get('X-Some-Header-Name');
});}
return val;
}
..
我知道 susbscribe 会立即返回,因此函数 getValue 不会从服务器返回值。有没有一种方法可以使函数仅在可观察返回时才返回值?