Какой оператор в rxjs может получить последний вызов в Observable? - PullRequest
0 голосов
/ 29 апреля 2019

как получить последний результат асинхронной операции для моей функции подписки и отменить предыдущие события?

У меня есть кнопка, которая вызывает функцию makeRequest, которая возвращает Observable следующим образом:

makeRequest() {
    return Observable.create((observer) => {
      let uniqueId = this.uniqueId++;

      setTimeout(() => {
        console.log('[makeRequest] complete request ' + uniqueId);
        observer.next({ save: true, id: uniqueId });
        observer.complete();
      }, 5000);
    });
  }

В моей функции подписки я получаю следующие результаты:

this.makeRequest().subscribe(r => {
  console.log({ r });
});

Как получить последнее событие от makeRequest, даже если я нажимаю несколько раз на кнопку?

- button clicked (uniqId = 0)
- button clicked (uniqId = 1)
- button clicked (uniqId = 2)
- subscribe(r => r // is uniqId = 2) 

все мои предыдущие события игнорировались, но не это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...