簡體   English   中英

如何從 etcd v2 watch 獲取 Observable

[英]How get Observable from etcd v2 watch

_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 交互,如果你告訴我如何進一步了解它,我將不勝感激,我閱讀了基本文檔。

代碼 +/- 像這樣工作:

  1. 發送請求
  2. 如果有變化,就會有響應,以此類推

我應該怎么做才能獲得定期狀態,或者我的錯誤是什么?

更新程序

watch(key: string) {
        return this._watch(key).subscribe({

我忘了指出這一天的return和痛苦))))))))))))))))))))

您向 etcd api 發出 http 請求。當有響應時,您通過next function 收到響應。然后可觀察完成。

你想定期輪詢 api 並將結果寫入可觀察對象嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM