Как получить обновленные данные из наблюдаемых - PullRequest
0 голосов
/ 12 июня 2018

У меня есть служба, которая кэширует полные http-ответы.Но при каждом обращении к этой службе эта служба делает новый вызов серверу для проверки новых данных.Если я загружаю страницу и записываю данные из службы (функция getGlobals), она сначала регистрирует кэшированные данные, а затем новые данные из службы.Однако страница загружает только первые кэшированные данные и не обновляется новыми данными с сервера после того, как http-вызов готов.

Я предполагаю, что это как-то связано с .then, но .subscribe не разрешено по обещанию.Как я получу новые данные ответа от сервера на странице с сервисом типа getGlobals?

Сервис

    getGlobals() {
    return new Promise(resolve => {
        let url = `${URL.getGlobals}`;
        let request = this.authHttp.get(url).map(res => res.json());
        let groupKey = 'slider';
        let ttl = 60;
        let delayType = 'all';
        let response = this.cache.loadFromDelayedObservable(url, request, groupKey, ttl , delayType);

        response.subscribe(
            data => {
                this.data = data;
                console.log(this.data); // show cache and new loaded data
                resolve(this.data);
            },
            err => {
                resolve(false);
            }
        );
    });
}

Страница

getGlobals(){
    this.GetApi.getGlobals().then(
        data => {
            console.log(data); // only shows the cached data 
            this.createGlobals( data );
        },
        err => console.log(err)
    );
}
...