rx tyrannosaurus - yo briefca · combining observables batman punches the joker robin punches the...

42
TYRANNOSAURUS RX

Upload: others

Post on 23-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TYRANNOSAURUS

RX

Page 2: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

REACTIVE EXTENSIONS

Page 3: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman
Page 4: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

JavaJSC#

Clojure

Groovy

Scala

Kotlin

Python

Ruby

C++

Haskell

Page 5: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

var list = [1,2,3,4,5,6,7]; !for(var i = 0; i < list.length; i++) { console.log(list[i]) }

Page 6: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

var list = [1,2,3,4,5,6,7]; !list.forEach(function(item) { console.log(item) })

Page 7: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

var list = [Promise(), Promise()…]; !list.forEach(function(item) { console.log(item.get()) })

Page 8: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TIME RUINS EVERYTHING

Page 9: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman
Page 10: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman
Page 11: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman
Page 12: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

OBSERVABLES LISTS WITH TIME

REIFIED EVENT STREAM PUSH BASED

Page 13: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES ITERABLE

FUTURE/PROMISEEVENTSRULES

OBSERVABLE

Page 14: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES Observable.from(new String[] { "The Joker", "The Riddler", "Penguin", "Catwoman"})

Page 15: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

baddies.subscribe((baddie) -> { out.println(baddie + “ is bad.”) })

Page 16: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

The Joker is bad. The Riddler is bad. Penguin is bad. Catwoman is bad.

Page 17: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

class _ extends Subscriber<String> { void onCompleted() {} void onError(Throwable t) {} void onNext(String s){} }

Page 18: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

onNext("The Joker”)

Page 19: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

onNext("The Joker”)

onNext("The Riddler”)

Page 20: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

onNext("The Joker”)

onNext("The Riddler”)

onNext(“Penguin")

Page 21: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

onNext("The Joker”)

onNext("The Riddler”)

onNext(“Penguin")

onNext(“Catwoman")

Page 22: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

CREATING OBSERVABLES

onCompleted()

onNext("The Joker”)

onNext("The Riddler”)

onNext(“Penguin")

onNext(“Catwoman")

Page 23: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

ERROR HANDLING

onNext("The Joker”)

Page 24: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

onNext("The Joker”)

onNext("The Riddler”)

ERROR HANDLING

Page 25: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

XonNext("The Joker”)

onNext("The Riddler”)

ERROR HANDLING

Page 26: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

XonNext("The Joker”)

onNext("The Riddler”)

onError(ex)

ERROR HANDLING

Page 27: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TRANSFORMING OBSERVABLES

TURN AN OBSERVABLE OF ONE TYPE INTO ANOTHER

Page 28: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TRANSFORMING OBSERVABLES Observable ints = Observable .interval(1, SECONDS); !ints.map((i) -> i + 1) .map((i) -> i + “ seconds”) .subscribe(out::println)

Page 29: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TRANSFORMING OBSERVABLES

map

map

Page 30: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TRANSFORMING OBSERVABLES

1 seconds 2 seconds 3 seconds 4 seconds ...

Page 31: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TRANSFORMING OBSERVABLES

flatMap(), groupBy(), buffer(), window()

Page 32: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

FILTERING OBSERVABLES

SELECT AND REJECT ITEMS EMITTED BY AN OBSERVABLE

Page 33: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

FILTERING OBSERVABLES

var keys = Rx.DOM.keypress(el) var ints = keys.filter(isNumeric) !ints.subscribe(console.log)

Page 34: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

FILTERING OBSERVABLES

filter X X

Page 35: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

FILTERING OBSERVABLES distinct(), timeout(),

ignoreElements(), throttleFirst(), debounce(), sample(), first(),

last(), take(), skip()

Page 36: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

COMBINING OBSERVABLES COMPOSING MULTIPLE

OBSERVABLES INTO A SINGLE OBSERVABLE

Page 37: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

COMBINING OBSERVABLES Observable goodies = Observable.from( new String[]{ "Batman", "Robin", "Alfred", “Batgirl"}); !goodies.zipWith(baddies, (g,b) -> g + " punches " + b)

Page 38: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

COMBINING OBSERVABLES

zipWith

Page 39: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

COMBINING OBSERVABLES

Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

Page 40: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

STUFF AND OTHER THINGS

retry(), delay(), timestamp(), amb(), defaultIfEmpty(),

reduce(), count()

Page 41: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman
Page 42: RX TYRANNOSAURUS - Yo Briefca · COMBINING OBSERVABLES Batman punches The Joker Robin punches The Riddler Alfred punches Penguin Batgirl punches Catwoman

TYRANNOSAURUS

RX