Last active
May 22, 2016 12:55
-
-
Save bangedorrunt/c0fb830ae0b645c903f1 to your computer and use it in GitHub Desktop.
RxJS tips
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| let everythingIsDone = Rx.Observable.fromEvent(em, ‘everythingIsDone’); | |
| let eventSource = Rx.Observable.fromEvent(em, ‘event’).takeUntil(everythingIsDone).toArray().toPromise(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Could be done with simple solution using `lodash#intersection` method | |
| Rx.Observable.merge( | |
| Rx.Observable.range(0, 10), | |
| Rx.Observable.range(11, 20), | |
| Rx.Observable.range(21, 25) | |
| ) | |
| .scan(({intersected, set}, n) => ({intersected: set.has(n), set: set.add(n)}), | |
| {intersected: false, set: new Set()} | |
| ) | |
| .pluck('intersected') | |
| .flatMap(b => b ? Rx.Observable.throw(new Error('')) : Rx.Observable.empty()) | |
| .subscribe( | |
| x => x, | |
| err => console.log('There was an intersection'), | |
| _ => console.log('No intersection') | |
| ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment