- Hands-On Reactive Programming with Reactor
- Rahul Sharma
- 339字
- 2021-08-13 15:22:50
ReactiveX
Reactive Extensions, also known as ReactiveX, enable us to express the asynchronous events in an application as a set of observable sequences. Other applications can subscribe to these observables, in order to receive notifications of events that are occurring. A producer can then push these notification events to a consumer as they arrive. Alternatively, if a consumer is slow, it can pull notification events according to its own consumption rate. The end-to-end system of a producer and its consumers is known as a pipeline. It is important to note that pipelines are lazy by default and do not materialize until they are subscribed to by a consumer. This is very different from eager Java types, like Future, which represent active work. The ReactiveX API consists of the following components:
- Observables: Observables represent the core concept of ReactiveX. They represent the sequences of emitted items, and they generate events that are propagated to the intended subscribers.
- Observer: Any application can express its intent for events published by an observable by creating an observer and subscribing to the respective observable. The intent is expressed in terms of the OnNext, OnCompleted, and OnError methods. Each observable sends a stream of events, followed by a completion event, which executes these methods.
- Operators: Operators enable us to transform, combine, and manipulate the sequences of items emitted by observables. The operators on an observable provide a new observable, and thus, they can be tied together. They do not work independently on the original observable; instead, they work on the observable generated by the previous operator to generate a new observable. The complete operator chain is lazy. It is not evaluated until an observer is subscribed to it. The complete chain is shown as follows:

ReactiveX provides the architecture design to build reactive applications. Individual libraries were built around it in different imperative languages to enable its use. These abstractions allow us to build asynchronous, non-blocking applications, and provide the additional benefits listed in the following sections.
- 計算機應用
- Dreamweaver 8中文版商業案例精粹
- TIBCO Spotfire:A Comprehensive Primer(Second Edition)
- 新手學電腦快速入門
- JavaScript典型應用與最佳實踐
- 中國戰略性新興產業研究與發展·工業機器人
- 基于單片機的嵌入式工程開發詳解
- 基于Xilinx ISE的FPAG/CPLD設計與應用
- 網站入侵與腳本攻防修煉
- Azure PowerShell Quick Start Guide
- 零起點學西門子S7-200 PLC
- 人工智能:語言智能處理
- 從零開始學Java Web開發
- Windows 7故障與技巧200例
- Kubernetes Design Patterns and Extensions