javascript - 使用 http 客户端从服务器获取值并将其用于后续步骤

标签 javascript angular rxjs rxjs-observables

我有一个如下所示的函数,我需要调用服务器并获取该函数返回的值。我正在使用 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;
}
..

我知道 subbscribe 会立即返回,因此函数 getValue 不会从服务器返回值。有没有办法让函数仅在 observable 返回时返回值?

最佳答案

正如 @satanTime 已经在 his answer 中指出的那样,您应该使用 HttpClient 返回的 Observable

然后,您还可以使用 async pipe 在模板中使用 myValue ,例如:

<p>{{myValue | async}}</p>

引用:https://angular.io/guide/observables-in-angular

关于javascript - 使用 http 客户端从服务器获取值并将其用于后续步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61048693/

相关文章:

javascript - 单击以隐藏每个 div 并在 jquery 中显示另一个 div

javascript - 为什么不能用 document.getElementById 代替 JavaScript 中的 $?

Javascript 输出未显示在 HTML p 标记内

angular - ngOnDestroy 可以在 ngAfterContentInit 之前发生吗?

angular - 当 Angular 中 ID 相等时合并两个可观察量

javascript - 如果第一位数字为零,则不允许用户输入更多值

javascript - 使用外部服务验证表单

angular - 如何托管angular 2网站?

javascript - 有没有办法在不使用 Subject 的情况下创建由方法调用触发的可观察序列?

html - 从列表中检索到的所选项目的新列表