Skip to content

Commit 9d2650c

Browse files
committed
[2025-11-17] Poprawki shareReply. Przebicie daty
1 parent 5d9d231 commit 9d2650c

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

_posts/pl/2025-10-03-czy-wiesz-ze-za-pomoca-operatora-sharereplay-mozesz-cache-owac-dane-z-observable.md renamed to _posts/pl/2025-11-17-czy-wiesz-ze-za-pomoca-operatora-sharereplay-mozesz-cache-owac-dane-z-observable.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22
layout: post
33
title: Czy wiesz, że za pomocą operatora shareReplay możesz cache'ować dane z observable?
44
description: ""
5-
date: 2025-10-03T08:00:00+01:00
5+
date: 2025-11-17T08:00:00+01:00
66
published: true
77
didyouknow: false
88
lang: pl
99
author: ptatarski
10-
image: /assets/img/posts/2025-10-03-czy-wiesz-ze-za-pomoca-operatora-sharereplay-mozesz-cache-owac-dane-z-observable/thumbnail.webp
10+
image: /assets/img/posts/2025-11-17-czy-wiesz-ze-za-pomoca-operatora-sharereplay-mozesz-cache-owac-dane-z-observable/thumbnail.webp
1111
tags:
12-
- angular
1312
- rxjs
1413
- observable
1514
---
1615

17-
Często zdarza się, że nie chcemy za każdym razem ponownie wykonywać całej logiki z danego *Observable*
18-
zamiast tego wolimy przechować jego wynik w pamięci. W Angularze (i ogólnie w RxJS) możemy to zrobić za pomocą operatora **`shareReplay`**.
16+
Często zdarza się, że nie chcemy za każdym razem ponownie wykonywać całej logiki z danego `Observable`
17+
zamiast tego wolimy przechować jego wynik w pamięci. W Angularze (i ogólnie w RxJS) możemy to zrobić za pomocą operatora `shareReplay`.
1918

2019
## Czym jest shareReplay?
2120
Operator `shareReplay` (tak jak operator `share`) pozwala na konwersję z *cold* do *hot* observable,
@@ -24,7 +23,7 @@ tak aby każda subskrypcja korzystała z tej samej emisji observable. Dodatkowo
2423

2524
## Przykład użycia
2625
W przykładzie poniżej generujemy losową liczbę. Normalnie przy każdej subskrypcji otrzymalibyśmy nowy wynik,
27-
ale dzięki `shareReplay` obie subskrypcje dostają dokładnie tę samą wartość.
26+
ale dzięki `shareReplay` obie subskrypcje dostają dokładnie tę wartość.
2827
```typescript
2928
const source$: Observable<number> = of(Math.round(Math.random() * 1000))
3029
.pipe(shareReplay());
@@ -37,17 +36,18 @@ s1: 742
3736
s2: 742
3837
```
3938
## Opcje konfiguracji
40-
Operator `shareReplay` posiada także dodatkowe opcje do skonfigurowania.
39+
Operator `shareReplay` posiada także dodatkowe opcje do skonfigurowania:
4140
- `bufferSize` - określa wielkość wewnętrznego ReplaySubject (domyślnie przechowuje ostatnią wartość),
4241
- `refCount` - określa, czy w momencie, gdy liczba subskrybentów wyniesie 0 shareReplay ma odsubskrybować się od źródłowego observable, co spowoduje wyczyszczenie cache (domyślnie false),
43-
- `windowTime` - ograniczenie czasu przechowywanych wartości (domyślnie nie ogranicza).
42+
- `windowTime` - ogranicza czas przechowywania wartości (czego domyślnie nie robi).
4443

4544

4645
### Przykład z dodatkowymi opcjami konfiguracji
4746
Załóżmy, że chcemy cache’ować więcej niż jedną wartość i dodatkowo kontrolować czas ich przechowywania.
4847
```typescript
4948
shareReplay({ bufferSize: 3, refCount: true, windowTime: 500 })
5049
```
50+
W rezultacie:
5151
- zostaną umieszczone w buforze 3 ostatnie wartości,
5252
- każda z osobna będzie miała czas życia ustawiony na pół sekundy,
5353
- w momencie, gdy nie będzie żadnej aktywnej subskrypcji, bufor zostanie wyczyszczony.

assets/img/posts/2025-10-03-czy-wiesz-ze-za-pomoca-operatora-sharereplay-mozesz-cache-owac-dane-z-observable/thumbnail.webp renamed to assets/img/posts/2025-11-17-czy-wiesz-ze-za-pomoca-operatora-sharereplay-mozesz-cache-owac-dane-z-observable/thumbnail.webp

File renamed without changes.

0 commit comments

Comments
 (0)