Tomasz Ducin
5.11.2019, Wrocław
Tomasz Ducin
5.11.2019, Wrocław
Tomasz Ducin
22nd October 2019, Gliwice
Tomasz Ducin
22nd October 2019, Gliwice
Tomasz Ducin
1.10.2019, Kraków
Tomasz Ducin
1.10.2019, Kraków
Tomasz Ducin
12th July 2019, Łódź
Tomasz Ducin
12th July 2019, Łódź
Tomasz Ducin
8th May 2019, Gdańsk
Tomasz Ducin
8th May 2019, Gdańsk
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
21st November 2017, Warsaw
Tomasz Ducin
9th April 2018, Warsaw
Tomasz Ducin
9th April 2018, Warsaw
Tomasz Ducin
9th April 2018, Warsaw
Tomasz Ducin
9th April 2018, Warsaw
Tomasz Ducin
9th April 2018, Warsaw
Tomasz Ducin
9th April 2018, Warsaw
Independent Consultant & Software Architect
Trainer, Speaker, JS/TS Expert
ArchitekturaNaFroncie.pl (ANF)
Warsaw, PL
tomasz (at) ducin.dev
@tomasz_ducin
source$.pipe(
operator1(someDetails),
operator2(), // no details
).subscribe(consumer);
currencyRates$
.map( curr => curr.EUR )
.sample(5000)
.subscribe(display);
completed
never
completed
stream$ .subscribe(consumer)
iterator.next()
store.dispatch(action)
store.getState()
-
pull-based
store.subscribe(listener)
-
push-based
action$ .scan(reducer) .subscribe(renderer)
action$.scan(reducer).subscribe(renderer)
let rate = 3.94;
let amount = 1000;
let exchange = amount / rate; // 253.80
rate = 3.97;
exchange // DESYNC, sync manually!
let rate$ = 3.94;
let amount$ = 1000;
let exchange$ = amount$ / rate$; // 253.80
rate$ = 3.97;
exchange$ // 251.89
let rate$ = 3.94;
let amount$ = 1000;
let exchange$ = amount$.combineLatest(rate$,
(amount, rate) => amount / rate);
let rate$ = 3.94;
let amount$ = 1000;
let exchange$ = amount$.combineLatest(rate$,
(amount, rate) => amount / rate);
// rate$ == 3.97 ---> exchange$ == 251.89
subscription
subscriptions
S
sourceA$.subscribe(subject$);
sourceB$.subscribe(subject$);
sourceC$.subscribe(subject$);
subject$.subscribe(consumerA);
subject$.subscribe(consumerB);
subject$.subscribe(consumerC);
let subject$ = Rx.Subject();
the actor subscribes to the prompter
the audience subscribes to the actor
the family subscribes to the soccer game late
the auctioneer subscribes to all participants
<script>
const price = 9.99
let quantity = 0;
$: totalPrice = quantity * price;
$: console.log("total:", totalPrice);
function handleClick() {
quantity += 1;
}
</script>
run to completion
event loop