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
710
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
330
HATEOAS dla ludzi!
mat3u
0
390
Architektura, która pomaga!
mat3u
0
470
Domain Events - czyli jak radzić sobie z rzeczywistością!
mat3u
1
780
F# 101
mat3u
0
660
Prosta architektura dla nieprostego systemu
mat3u
1
700
Other Decks in Programming
See All in Programming
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
630
PostmanでAPIの動作確認が楽になった話
h455h1
0
130
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
250
受託開発でGitLab CI を活用していく
xiombatsg
1
270
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
pixivアプリでマルチモジュールを実現するまで
gatosyocora
1
130
コードレビューで学ぶ!Kotlinオブジェクト指向デザインパターン
akkie76
2
180
[SF Ruby, March 2024] Rails on Wasm
palkan
0
380
What We Can Learn From OSS
inouehi
0
400
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
300
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Featured
See All Featured
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
How to train your dragon (web standard)
notwaldorf
72
5.1k
Designing the Hi-DPI Web
ddemaree
276
33k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Web Components: a chance to create the future
zenorocha
305
41k
How to Ace a Technical Interview
jacobian
272
22k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
12
1.5k
Automating Front-end Workflow
addyosmani
1355
200k
Side Projects
sachag
451
41k
10 Git Anti Patterns You Should be Aware of
lemiorhan
646
57k
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