万本电子书0元读

万本电子书0元读

顶部广告

Mastering Reactive JavaScript电子书

售       价:¥

3人正在读 | 0人评论 9.8

作       者:Erich de Souza Oliveira

出  版  社:Packt Publishing

出版时间:2017-05-26

字       数:32.6万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Expand your boundaries by creating applications empowered with real-time data using RxJs without compromising performance About 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 process Who This Book Is For If 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 webchat In Detail If 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 approach This 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.
目录展开

Title Page

Copyright

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部