Вы можете использовать статический оператор of
для создания наблюдаемой, которая выдает предоставленное значение (или значения в последовательности, если вы передаете несколько аргументов), а затем завершает.
Пример:
...
if (this.currentList !== undefined) {
return Observable.of(this.currentList);
}
...
Вот несколько документов по нему: реактивный x.io , learn-rxjs
Также может быть более целесообразно использовать оператор do/tap
для изменения состояния чего-либо вне потока, поскольку вы на самом деле не собираетесь возвращать значение, отличное от map
.
Пример:
...
return this.http.get(this.requestUrl)
.do((response: any) => this.currentList = response.json())
...
Вот несколько документов: learn-rxjs
Edit:
Нашел еще один похожий пост, в котором говорится об избежании дублирования запросов в полете, а также о кешировании. Поэтому для дальнейшего обсуждения этой темы вы можете проверить это:
Как правильно передать результат сетевого вызова Angular Http в RxJs 5?