Как вызвать метод кеша для Observables в rxjs

Я новичок в rxjs. Я хотел знать, правильный ли код ниже или требуется какое-либо исправление?

var rxjs_1 = require('rxjs');    
rxjs_1.Observable.defer(function() {

            })

            .cache(1);

В приведенном выше коде я столкнулся с проблемой с кешем (он выдает ошибку: rxjs_1.Observable.defer(...).cache не является функцией).

Я проверил в node_modules установленный rxjs, а в файле Observable.js нет метода, называемого кешем.

не могли бы вы рассказать мне, как вызвать кеш в Observable в rxjs.


person user2313833    schedule 02.11.2016    source источник


Ответы (1)


В файле observable.js нет метода с именем cache, так как они добавляют его в прототип. Проверьте rxjs/add/operator/cache.js на наличие файла javascript.

Если я посмотрю документацию по отсрочке (здесь: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/defer.md), я вижу, вы должны вернуть наблюдаемое из отложенного функция. Вы не делаете этого в своем примере кода. Вероятно, поэтому вы получаете сообщение об ошибке, что функция не существует.

Чего вы пытаетесь достичь?

person KwintenP    schedule 02.11.2016
comment
Попытка кэшировать содержимое перед возвратом Observable. Расположение, указанное выше, rxjs/add/operator/cache.js не содержит файл cache.js в библиотеке rxjs (версия 5.x). - person user2313833; 03.11.2016
comment
Похоже, кеш был удален, начиная с версии 5.0.0RC1: github.com/ReactiveX/RxJS/commit/ 1b23ace Вероятно, поэтому вы получаете сообщение об ошибке. - person KwintenP; 03.11.2016