RxJS (Reactive Extenstions)
RxJSとは何ですか。
RxJsが何であるかを説明する前に、2つの用語を理解する必要がある.
Reactive Programming (RP)
Reactive programming is programming with asynchronous data streams
プロアクティブプログラミングは、非同期データストリームを処理するプログラム設計です.すなわち,コアは,すべてのコンテンツを非同期データストリームと見なし,傍観者設計モードを用いて非同期イベントを処理することである.
AsyncとObserver
非同期イベントとは、さまざまなタスクを実行しながら、一部のタスクが非同期で完了することを意味します.Webやアプリケーションで発生する非同期イベントの種類は非常に多様です.例えば、ユーザがアプリケーションにログインしたり、画像を閲覧したり、パスワードを変更したりすることは、ユーザインタフェースに干渉せず、バックグラウンドからデータをインポートする操作を非同期操作として表現することができる.
データストリーム(Streams)は、時間順に並べられたアクティブなストリームです.Asyncデータ・ストリームは次のように表すことができます.
Reactive Programmingは、ユーザーがイベントが発生するたびにユーザーのイベントを観察し、値が変化したときにデータストリームに値を入れて、タイムリーに反応させる.この観察モードを観察者設計モードと呼ぶ.
Functional Reactive Programming(FRP)
Functional reactive programming is a programming paradigm for reactive programming using the building blocks of functional programming
簡単に言えば,Functional Reactive Programmingとは,関数式プログラミングを用いて前に学習したRPを実現する概念である.次の例は、次の配列のスペースを削除し、すべてのアルファベットを大文字に変換するプログラムです.
コマンドプログラミングconst log = o => console.log(o);
const words = ["car ", " plain ", " table"];
const processedWords = [];
for (let i = 0; i < words.length; i++){
processedWords.push(words[i].trim().toUpperCase());
}
log(processedWords);
かんすうしきプログラミングconst log = o => console.log(o);
const words = ["car ", " plain ", " table"];
const pipeAll = (...fns) => x => fns.reduce((v,fn)=> fn(v), x);
const trim = str => str.trim();
const toUpperCase = str => str.toUpperCase();
const trimAndUpperCase = pipeAll(trim, toUpperCase);
const processedWords = words.map(trimAndUpperCase);
log(processedWords)
上記のコードから、コマンドプログラミングコードはより短く、より簡潔に見えます.しかし、関数プログラミングの利点は、可読性が強く、作成した関数を再使用できることです.これらの利点を持つ関数プログラミングをRPとともに使用すると、より強力なツールになります.
Reactive Extensions (Rx)
An API for asynchronous programming with obervable streams
要するに,Reactive Extensionsは観測可能なストリームを用いて非同期プログラミングを行うAPIである.すなわち、Rxは、前述のRPやFRPなどのプログラミングモードではなく、APIである.
Rxは、debonse、throttlingなどの関数だけでなく、RPの非同期データストリームを用いて、時間とともに変化する動作を継続的に観察し、実行することができる.
リファレンス
Functional reactive programming is a programming paradigm for reactive programming using the building blocks of functional programming
簡単に言えば,Functional Reactive Programmingとは,関数式プログラミングを用いて前に学習したRPを実現する概念である.次の例は、次の配列のスペースを削除し、すべてのアルファベットを大文字に変換するプログラムです.
コマンドプログラミング
const log = o => console.log(o);
const words = ["car ", " plain ", " table"];
const processedWords = [];
for (let i = 0; i < words.length; i++){
processedWords.push(words[i].trim().toUpperCase());
}
log(processedWords);
かんすうしきプログラミングconst log = o => console.log(o);
const words = ["car ", " plain ", " table"];
const pipeAll = (...fns) => x => fns.reduce((v,fn)=> fn(v), x);
const trim = str => str.trim();
const toUpperCase = str => str.toUpperCase();
const trimAndUpperCase = pipeAll(trim, toUpperCase);
const processedWords = words.map(trimAndUpperCase);
log(processedWords)
上記のコードから、コマンドプログラミングコードはより短く、より簡潔に見えます.しかし、関数プログラミングの利点は、可読性が強く、作成した関数を再使用できることです.これらの利点を持つ関数プログラミングをRPとともに使用すると、より強力なツールになります.Reactive Extensions (Rx)
An API for asynchronous programming with obervable streams
要するに,Reactive Extensionsは観測可能なストリームを用いて非同期プログラミングを行うAPIである.すなわち、Rxは、前述のRPやFRPなどのプログラミングモードではなく、APIである.
Rxは、debonse、throttlingなどの関数だけでなく、RPの非同期データストリームを用いて、時間とともに変化する動作を継続的に観察し、実行することができる.
リファレンス
Reference
この問題について(RxJS (Reactive Extenstions)), 我々は、より多くの情報をここで見つけました https://velog.io/@kyman19940214/RxJS-Reactive-Extenstionsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol