_watch(key: string): Observable<AxiosResponse<any>> {
let url: string = `${this.buildUrl(key)}?wait=true&recursive=true`;
return this.httpService.get(url)
.pipe(
map((resp) => resp),
tap(data => console.log(data))
)
}
watch(key: string) {
this._watch(key).subscribe({
next: (v) => console.log(v),
error: (err) => {
if (!err.response) return new EtcdConnectionError();
let data = err.response.data;
switch (data.errorCode) {
// https://etcd.io/docs/v2.3/errorcode/
case 100:
return new EtcdNotFoundError(key);
default:
return new EtcdCommonError(data.message);
}
},
complete: () => console.info('complete')
})
}
我隐约了解如何与 Observable 交互,如果您能告诉我如何进一步了解它,我将不胜感激,我阅读了基本文档。
代码的工作原理是这样的:
- 发送请求
- 如果有变化,就会有响应,以此类推
我应该怎么做才能获得定期状态,或者我的错误是什么?
UPD
watch(key: string) {
return this._watch(key).subscribe({
我忘了指出return
这一天并遭受了痛苦)))))))))))))))))))))