169 похожих чатов

24 ответов

16 просмотров

ну если вкратце

Oleh-P Автор вопроса
Evgheni Чернявский
ну если вкратце

спасибо! дочитал на rxjs. возник вопрос насколько уместно будет shareReplay применить сразу тут: get(): Observable<Book[]> { return this.httpClient.get<Book[]>(`${this.url}`); } думаю правильно - так как на источнике данных. но вот с точки зрения pure function - уже не очень

это ж метод для получения данных, а не для кэширования

Oleh-P Автор вопроса
Oleh P
да. это и смущает. как разделить?

кеширование в компоненте обычно делается

Oleh-P Автор вопроса
Oleh-P Автор вопроса
Ilya Chursin
Что значит там ?

компонент: this.books$ = this.bookService.get().pipe(shareReplay()); сервис: get(): Observable<Book[]> { return this.httpClient.get<Book[]>(`${this.url}`); }

Oleh-P Автор вопроса
Oleh P
компонент: this.books$ = this.bookService.get().p...

этот вариант выполняет запрос каждый раз когда подписываюсь

Oleh-P Автор вопроса
Oleh P
этот вариант выполняет запрос каждый раз когда под...

потому что компонент уничтожается и заново вызывается подписка.

Oleh P
потому что компонент уничтожается и заново вызывае...

а надо чтобы взял с бека данные один раз и всегда отдавал с кеша?

Oleh P
да

в сервисе закешируйте

Oleh-P Автор вопроса
Максим Федоров
в сервисе закешируйте

хотелось бы средствами rxjs . не очень хочется городить мапу -кеш

Oleh P
компонент: this.books$ = this.bookService.get().p...

export class CacheService { // На date$ подписываемся там, где нужны данные. public date$ = this.getCurrentDate(); // С помощью updateCache$ обновляем данные. // Есть нюанс, свежие обновления текущие подписчики на date$ не получат, // получат только новые подписчики. private updateCache$ = new Subject<boolean>(); constructor(private httpClient: HttpClient) {} private getCurrentDate(): Observable<Date> { return this.httpClient.get('assets/data.json').pipe( switchMap(() => of(new Date)), share({ connector: () => new ReplaySubject(1), resetOnComplete: () => this.updateCache$.asObservable() }) ) } public updateCache(): void { this.updateCache$.next(true) } }

Andrew (ノಠ益ಠ)ノ彡┻━┻
export class CacheService { // На date$ подписыв...

Не очень хорошее решение, учитывая то, что старые подписчики не получат новые данные

Oleg Safonov
Не очень хорошее решение, учитывая то, что старые ...

Я бы сказал, что всё зависит от контекста задачи. Он определяет какое решение больше подходит. Я всего лишь предложил один из возможных вариантов.

Andrew (ノಠ益ಠ)ノ彡┻━┻
Я бы сказал, что всё зависит от контекста задачи. ...

А тут вообще работать то будет? Мне кажется тут запрос в принципе один раз уйдёт, нет?

Oleg Safonov
Да, именно поэтому она не pure

Хм... На комплит потоке не должен.

Andrew (ノಠ益ಠ)ノ彡┻━┻
export class CacheService { // На date$ подписыв...

я использую похожее, только упакованное в одну функцию, и с апдейта переключение через switchMap, так в запрос можно передать исходные данные

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта