$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rx 101
Search
Matt Stasch
June 26, 2015
Programming
0
840
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
440
HATEOAS dla ludzi!
mat3u
0
500
Architektura, która pomaga!
mat3u
0
590
Domain Events - czyli jak radzić sobie z rzeczywistością!
mat3u
1
900
F# 101
mat3u
0
780
Prosta architektura dla nieprostego systemu
mat3u
1
810
Other Decks in Programming
See All in Programming
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
350
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
9
5.7k
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
320
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
730
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
150
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
440
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.2k
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
340
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
110
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
340
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
190
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Scaling GitHub
holman
464
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Statistics for Hackers
jakevdp
799
230k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
4 Signs Your Business is Dying
shpigford
186
22k
Rails Girls Zürich Keynote
gr2m
95
14k
The Invisible Side of Design
smashingmag
302
51k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
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