最新章節
- Summary
- Testing the application
- Batching changes to the DOM
- Improving interaction with RxJS
- Connecting user interactions and server communication
- Using RxJS to manage user input
品牌:中圖公司
上架時間:2021-07-09 18:28:49
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Summary 更新時間:2021-07-09 20:33:37
- Testing the application
- Batching changes to the DOM
- Improving interaction with RxJS
- Connecting user interactions and server communication
- Using RxJS to manage user input
- Connecting to the server application
- Building the application for the first time
- The structure of our client
- Installing dependencies
- A Real-Time Client
- Summary
- Using Redis as the DataSource for messages
- Connecting to Redis
- Scaling the server
- Handling WebSocket connections
- Service implementation
- Test implementation
- Service to send a command
- Service implementation
- Test implementation
- Service to block messages from a given user
- Service implementation
- Test implementation
- Service to listen to new messages
- Service implementation
- Test implementation
- Service to send messages
- DataSource
- Implementing the server
- The architecture of the server
- Creating the project
- The web chat server
- A Real-Time Server
- Summary
- A performance comparison for JavaScript code using transducers
- Testing transducers
- Using transducers with RxJS
- Using transducers
- The transducers-js API
- Available transducer implementations for JavaScript
- What is a transducer?
- Composition
- Summary
- The do() operator
- The groupBy() operator
- The finally() operator
- The flatMapFirst() operator
- The flatMapLatest() operator
- Other important operators
- Combining observables
- Dealing with backpressure
- Going beyond the basics
- Aggregating data
- Filtering data
- Challenge - Creating a function to filter elements using only the flatMap() operator
- The map() operator versus the flatMap() operator
- The fundamentals of RxJS
- The road so far
- More about Operators
- Summary
- Testing applications using RxJS
- Testing in the browser
- Testing in the server
- Testing our application
- The mergeDelayError() operator
- The retry() operator
- The onErrorResumeNext() operator
- The catch() operator
- Treating an error
- Acting when an error occurs
- Dealing with errors
- Something is Wrong - Testing and Dealing with Errors
- Summary
- Using the zipIterable() operator
- Using the zip() operator
- Using the forkJoin() operator
- Combining observables
- Using the mergeAll() operator
- Using the concatAll() operator
- Using the merge() operator
- Using the concat() operator
- Concatenating observables
- Running observables
- When do I need to combine observables?
- Too Many Sources - Combining Observables
- Summary
- The skipWhile() operator
- The skip() operator
- The takeWhile() operator
- The takeLast() operator
- The take() operator
- The first() operator
- More ways to filter data
- Controlled observables
- Pausable observables (with buffer)
- The bufferWithTimeOrCount() operator
- The bufferWithTime() operator
- The bufferWithCount() operator
- Buffering
- Loss-less operators to deal with backpressure
- The pausable() observables
- The debounce() operator
- The sample() operator
- The throttle() operator
- Lossy strategies to deal with backpressure
- Common strategies to deal with backpressure
- What is backpressure?
- The World Changes Too Fast - Operators to Deal with Backpressure
- Summary
- The reduce() operator
- The filter() operator
- The flatMap() operator
- The map() operator
- Adding operators to observables
- Transforming Data - Map Filter and Reduce
- Summary
- RxJS Schedulers
- RxJS Disposable
- RxJS Subjects
- Subscribing to changes (Observer)
- Creating an observable from an arbitrary source
- Creating observables from DOM events (or EventEmitter)
- Creating an observable from an error
- Creating an observable from arbitrary arguments
- Creating an observable from a factory function
- Creating an observable from a single value
- Creating empty observables
- Creating an observable from a promise
- Creating an observable from callbacks
- Creating an observable using period of time
- Creating an observable using range ()
- Creating an observable from a sequence factory
- Creating an observable from iterable objects
- Creating an observable
- Installing RxJS
- Hot and cold observables
- Difference between bacon.js and RxJS observables
- RxJS observables
- A World Full of Changes - Reactive Extensions to the Rescue
- Summary
- Observables' lazy evaluation
- Reusing observables
- Transforming events using bacon.js
- Reading how an operator works
- Acting when an error occurs
- Subscribing using the assign method
- Subscribing using the log method
- Subscribing using the onValue() method
- Subscribing
- Reacting to changes
- Changes in an observable
- Properties
- Observables from other sources
- Observables from an interval (interval)
- Observables from an array (sequentially)
- Observables from an array (fromArray)
- Observable node event emitter (fromEvent)
- Observables from promises (fromPromise)
- Observables from DOM events (asEventStream)
- Creating our first observable
- The bacon.js observables
- Reacting for the First Time
- Summary
- Your first code using reactive programming
- RxJS
- bacon.js
- Node.js
- Installation of tools
- Why do I need it?
- The reactive paradigm
- What Does Being Reactive Mean?
- Questions
- Piracy
- Errata
- Downloading the example code
- Customer support
- Reader feedback
- Conventions
- Who this book is for
- What you need for this book
- What this book covers
- Preface
- Customer Feedback
- www.PacktPub.com
- About the Reviewer
- About the Author
- Credits
- Title Page
- coverpage
- coverpage
- Title Page
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Errata
- Piracy
- Questions
- What Does Being Reactive Mean?
- The reactive paradigm
- Why do I need it?
- Installation of tools
- Node.js
- bacon.js
- RxJS
- Your first code using reactive programming
- Summary
- Reacting for the First Time
- The bacon.js observables
- Creating our first observable
- Observables from DOM events (asEventStream)
- Observables from promises (fromPromise)
- Observable node event emitter (fromEvent)
- Observables from an array (fromArray)
- Observables from an array (sequentially)
- Observables from an interval (interval)
- Observables from other sources
- Properties
- Changes in an observable
- Reacting to changes
- Subscribing
- Subscribing using the onValue() method
- Subscribing using the log method
- Subscribing using the assign method
- Acting when an error occurs
- Reading how an operator works
- Transforming events using bacon.js
- Reusing observables
- Observables' lazy evaluation
- Summary
- A World Full of Changes - Reactive Extensions to the Rescue
- RxJS observables
- Difference between bacon.js and RxJS observables
- Hot and cold observables
- Installing RxJS
- Creating an observable
- Creating an observable from iterable objects
- Creating an observable from a sequence factory
- Creating an observable using range ()
- Creating an observable using period of time
- Creating an observable from callbacks
- Creating an observable from a promise
- Creating empty observables
- Creating an observable from a single value
- Creating an observable from a factory function
- Creating an observable from arbitrary arguments
- Creating an observable from an error
- Creating observables from DOM events (or EventEmitter)
- Creating an observable from an arbitrary source
- Subscribing to changes (Observer)
- RxJS Subjects
- RxJS Disposable
- RxJS Schedulers
- Summary
- Transforming Data - Map Filter and Reduce
- Adding operators to observables
- The map() operator
- The flatMap() operator
- The filter() operator
- The reduce() operator
- Summary
- The World Changes Too Fast - Operators to Deal with Backpressure
- What is backpressure?
- Common strategies to deal with backpressure
- Lossy strategies to deal with backpressure
- The throttle() operator
- The sample() operator
- The debounce() operator
- The pausable() observables
- Loss-less operators to deal with backpressure
- Buffering
- The bufferWithCount() operator
- The bufferWithTime() operator
- The bufferWithTimeOrCount() operator
- Pausable observables (with buffer)
- Controlled observables
- More ways to filter data
- The first() operator
- The take() operator
- The takeLast() operator
- The takeWhile() operator
- The skip() operator
- The skipWhile() operator
- Summary
- Too Many Sources - Combining Observables
- When do I need to combine observables?
- Running observables
- Concatenating observables
- Using the concat() operator
- Using the merge() operator
- Using the concatAll() operator
- Using the mergeAll() operator
- Combining observables
- Using the forkJoin() operator
- Using the zip() operator
- Using the zipIterable() operator
- Summary
- Something is Wrong - Testing and Dealing with Errors
- Dealing with errors
- Acting when an error occurs
- Treating an error
- The catch() operator
- The onErrorResumeNext() operator
- The retry() operator
- The mergeDelayError() operator
- Testing our application
- Testing in the server
- Testing in the browser
- Testing applications using RxJS
- Summary
- More about Operators
- The road so far
- The fundamentals of RxJS
- The map() operator versus the flatMap() operator
- Challenge - Creating a function to filter elements using only the flatMap() operator
- Filtering data
- Aggregating data
- Going beyond the basics
- Dealing with backpressure
- Combining observables
- Other important operators
- The flatMapLatest() operator
- The flatMapFirst() operator
- The finally() operator
- The groupBy() operator
- The do() operator
- Summary
- Composition
- What is a transducer?
- Available transducer implementations for JavaScript
- The transducers-js API
- Using transducers
- Using transducers with RxJS
- Testing transducers
- A performance comparison for JavaScript code using transducers
- Summary
- A Real-Time Server
- The web chat server
- Creating the project
- The architecture of the server
- Implementing the server
- DataSource
- Service to send messages
- Test implementation
- Service implementation
- Service to listen to new messages
- Test implementation
- Service implementation
- Service to block messages from a given user
- Test implementation
- Service implementation
- Service to send a command
- Test implementation
- Service implementation
- Handling WebSocket connections
- Scaling the server
- Connecting to Redis
- Using Redis as the DataSource for messages
- Summary
- A Real-Time Client
- Installing dependencies
- The structure of our client
- Building the application for the first time
- Connecting to the server application
- Using RxJS to manage user input
- Connecting user interactions and server communication
- Improving interaction with RxJS
- Batching changes to the DOM
- Testing the application
- Summary 更新時間:2021-07-09 20:33:37