Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rx 101
Search
Matt Stasch
June 26, 2015
Programming
0
850
Rx 101
Introduction to Reactive Extensions
Matt Stasch
June 26, 2015
Tweet
Share
More Decks by Matt Stasch
See All by Matt Stasch
Monads in .NET
mat3u
0
450
HATEOAS dla ludzi!
mat3u
0
510
Architektura, która pomaga!
mat3u
0
600
Domain Events - czyli jak radzić sobie z rzeczywistością!
mat3u
1
910
F# 101
mat3u
0
790
Prosta architektura dla nieprostego systemu
mat3u
1
820
Other Decks in Programming
See All in Programming
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
ThorVG Viewer In VS Code
nors
0
770
CSC307 Lecture 05
javiergs
PRO
0
500
MUSUBIXとは
nahisaho
0
130
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
130
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
170
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
600
高速開発のためのコード整理術
sutetotanuki
1
390
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
110
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
180
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
340
CSC307 Lecture 02
javiergs
PRO
1
770
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
1.9k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Mind Mapping
helmedeiros
PRO
0
78
Unsuck your backbone
ammeep
671
58k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
First, design no harm
axbom
PRO
2
1.1k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
62
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.5k
WCS-LA-2024
lcolladotor
0
450
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
sira's awesome portfolio website redesign presentation
elsirapls
0
140
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
Introduction to Rx Mateusz Stasch
2 1 N (-> ∞) Synchronous T IEnumerable<T> Iterable<T> Asynchronous
Task<T> Future<T> Promise<T> IObservable<T> Observable<T>
3 IObservable<T> IObserver<T>
4 IObservable<T> IObserver<T> public interface IObservable<out T> { IDisposable Subscribe(IObserver<T>
observer); } public interface IObserver<in T> { void OnCompleted(); void OnError(Exception error); void OnNext(T value); }
5 IObservable<T> IObserver<T> public interface IObservable<out T> { IDisposable Subscribe(IObserver<T>
observer); } public interface IObserver<in T> { void OnCompleted(); void OnError(Exception error); void OnNext(T value); }
6 IObservable<T> events.Throttle(TimeSpan.FromMilliseconds(100)) .Select(e => HandleDeviceConnDiscon(e.EventArgs)) .Subscribe(v => Console.WriteLine("2: {0}",
v));
7 IObservable<T> IObserver<T> subscribe
8 IObservable<T> IObserver<T> subscribe onNext
9 IObservable<T> IObserver<T> subscribe onNext / onCompleted
10 IObservable<T> IObserver<T> subscribe onNext onError
11 IObservable<T> IObserver<T> subscribe onNext unsubscribe
12 Demo
13 IObservable<T> IObserver<T> subscribe onNext onError
14 IObservable<T> IObserver<T> subscribe onNext onError ObserveOn(Scheduler)
15 IObservable<T> IObserver<T> subscribe onNext onError ObserveOn(Scheduler)
16 IObservable<T> IObserver<T> subscribe onNext onError SubscribeOn(Scheduler)
17 IObservable<T> IObserver<T> subscribe onNext onError SubscribeOn(Scheduler)
18 IObservable<T> IObserver<T> subscribe onNext onError SubscribeOn(Scheduler)
19 Rx will pick a default scheduler by using the
principle of least concurrency… https://msdn.microsoft.com/en-us/library/hh242963(v=vs.103).aspx
20 Schedulers CurrentThread Immediate TaskPool ThreadPool
NewThread
21 Schedulers CurrentThread Immediate TaskPool ThreadPool
NewThread Actor-Model Timers Own implementations
22 Demo
23 var sequence = new Subject<int>(); Console.WriteLine("Next line should lock
the system."); var value = sequence.First(); sequence.OnNext(1); Console.WriteLine("I can never execute....");
24 http://reactivex.io/ http://reactivex.io/documentation/operators/combinelatest.html
25 https://gist.github.com/staltz/868e7e9bc2a7b8c1f754 http://reactivex.io/ http://reactivex.io/tutorials.html http://www.introtorx.com/
Naming Convention http://onoffswitch.net/rxjava-observables-akka-actors/ Bibliography