const source = Rx.Observable.of(1);
const example = source
.do(val => console.log('do called'));
example.subscribe(val => console.log('subscribe called'));
//Output :
do called
subscribe called
此示例显示do
在subscribe
之前执行。
执行 subscribe
后,我需要使用哪个运算符来定义逻辑 ?
我需要这个来定义逻辑一次,并且必须在每次订阅调用之后执行,这也有助于尊重SRP(单一责任原则)一个例子是使用我正在寻找的某种特定运算符来处理拦截器中的缓存逻辑for和订阅服务
答案 0 :(得分:0)
我处理拦截器的方式如下,如果我正确理解你的要求,它可能会有所帮助。
...
private interceptor(observable: Observable<Response>): Observable<Response> {
return observable
.map(res => {
return res;
})
.catch((err) => {
//handle Specific Error
return Observable.throw(err);
})
.finally(() => {
//After the request;
console.info("After the Request")
});
}
protected get(req: getHttpParams): Observable<Response> {
return this.interceptor(this.httpClient.get(`${path}/${String(req.id)}`, req.options));
}
...
我还建议您专门查看Angular 5's in-built interceptor http
次请求