
- 310 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Mastering Reactive JavaScript
About this book
Expand your boundaries by creating applications empowered with real-time data using RxJs without compromising performanceAbout This Book• Handle an infinite stream of incoming data using RxJs without going crazy• Explore important RxJs operators that can help you improve your code readability• Get acquainted with the different techniques and operators used to handle data traffic, which occurs when you receive data faster than you can processWho This Book Is ForIf you're a web developer with some basic JavaScript programming knowledge who wants to implement the reactive programming paradigm with JavaScript, then this book is for you.What You Will Learn• Get to know the basics of functional reactive programming using RxJs• Process a continuous flow of data with linear memory consumption• Filter, group, and react to changes in your system• Discover how to deal with data traffic• Compose operators to create new operators and use them in multiple observables to avoid code repetition• Explore transducers and see how they can improve your code readability• Detect and recover from errors in observables using Retry and Catch operators• Create your own reactive application: a real-time webchatIn DetailIf you're struggling to handle a large amount of data and don't know how to improve your code readability, then reactive programming is the right solution for you. It lets you describe how your code behaves when changes happen and makes it easier to deal with real-time data. This book will teach you what reactive programming is, and how you can use it to write better applications.The book starts with the basics of reactive programming, what Reactive Extensions is, and how can you use it in JavaScript along with some reactive code using Bacon. Next, you'll discover what an Observable and an Observer are and when to use them.You'll also find out how you can query data through operators, and how to use schedulers to react to changes.Moving on, you'll explore the RxJs API, be introduced to the problem of data traffic (backpressure), and see how you can mitigate it. You'll also learn about other important operators that can help improve your code readability, and you'll see how to use transducers to compose operators.At the end of the book, you'll get hands-on experience of using RxJs, and will create a real-time web chat using RxJs on the client and server, providing you with the complete package to master RxJs.Style and approachThis easy-to-follow guide is full of hands-on examples of reactive programming. Each topic is explained and placed in context, and for the more inquisitive there are more details of the concepts used, ending with an application using the concepts learned through the book.
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
The World Changes Too Fast - Operators to Deal with Backpressure
- map()
- flatMap()
- filter()
- reduce()
- What is backpressure?
- How can we mitigate backpressure using RxJS?
- Lossy strategies to deal with backpressure
- Loss-less strategies to deal with backpressure
- Buffering observables
- Pausing observables
- Operators to deal with backpressure
- Operators to filter data
What is backpressure?
Common strategies to deal with backpressure
Lossy strategies to deal with backpressure
The throttle() operator
observable.throttle(interval,[scheduler]);
- interval: This is the time interval, in milliseconds, between the emission of data
- scheduler: This is used to propagate the data
Rx.Observable
.interval(50)
.subscribe((i)=>console.log(i));
0
1
2
3
//continues printing until you stop the program
Rx.Observable
.interval(50)
.throttle(1000)
.subscribe((i)=>console.log(i));
0
18
37
//continues printing until you stop the program

Table of contents
- Title Page
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Preface
- What Does Being Reactive Mean?
- Reacting for the First Time
- A World Full of Changes - Reactive Extensions to the Rescue
- Transforming Data - Map, Filter, and Reduce
- The World Changes Too Fast - Operators to Deal with Backpressure
- Too Many Sources - Combining Observables
- Something is Wrong - Testing and Dealing with Errors
- More about Operators
- Composition
- A Real-Time Server
- A Real-Time Client