如何在角度http客户端observable进行网络调用之前编写一些代码但是在调用实际函数之后?以下是角度http服务调用
this.geocodeApi.getAddressSuggestions(address).subscribe(resp => {..});
但我们如何做
之类的事情this.geocodeApi.getAddressSuggestions(address).before({CODE HERE}).subscribe(resp => {..});
答案 0 :(得分:1)
你想做什么?
如果你想在发送之前更改请求,你应该使用拦截器,就像GSSwain所说的那样
当然,只有在geocodeApi
使用HttpClient
服务时才能使用拦截器。
答案 1 :(得分:1)
我知道这是一篇旧文章,但是...
this.sub$ = defer(() => {
console.log('about to subscribe')
return this.api('/users/')
.pipe(
finalize(() => console.log('complete'))
);
});
defer()
要做的是直到订阅后才执行代码,返回值是可观察到的,但是外部代码将被执行,您可以使用finalize进行清理。