Как получить Observable из часов etcd v2

      _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и помучился с этим днем))))))))))))))))))))

1 ответ

Вы делаете http-запрос к etcd api. Когда есть ответ, вы получаете ответ через nextфункция. Затем наблюдаемое завершается.

Вы хотите периодически опрашивать API и записывать результаты в наблюдаемое?

Другие вопросы по тегам