観測可能と観測可能
5653 ワード
反応プログラミングは、アプリケーションが必要なデータを取得するために外部環境に要求するのではなく、アプリケーションが外部環境を観察するときに外部環境にデータストリームを解放し、それに反応してデータを取得します。
옵저버블
は、データ・ストリームを作成および解放するオブジェクトです.옵저버
ファイバチャネル解放データの取得すなわち、データ消費者である傍観者対データ生産者傍観者
구독(subscription)
である.Angularは、非同期データストリームを処理するAPI
RxJS
を使用する.マウスの移動に応じて画面に座標を表示する例
import { Component, OnInit } from '@angular/core';
// ① RxJS 임포트
import { Observable, fromEvent } from 'rxjs';
@Component({
selector: 'app-root',
template: `
<h3>Mouse Coordinates</h3>
<h3>X: {{ posX }} Y: {{ posY }}</h3>
`
})
export class AppComponent implements OnInit {
mousePositon$ :Observable<Event>;
posX: number = 0;
posY: number = 0;
ngOnInit() {
// ② 옵저버블의 생성(DOM 이벤트를 옵저버블로 변환)
// fromEvent 오퍼레이터는 DOM 이벤트를 옵저버블로 변환하는 오퍼레이터이다.
// 데이터를 생산해내는 것이면 무엇이든 옵저버블로 만들 수있다.
// 이로서 mousePosition$ 에 event가 담겼고
this.mousePositon$ = fromEvent(document, 'mousemove');
// ③ 옵저버는 옵저버블을 구독하고 옵저버블이 방출한 데이터를 전파받아 사용한다.
// 옵저버블을 구독하면 데이터 스트림을 받을수 있다.
// 여기 예제에서는 event에 담겼다.
this.mousePositon$.subscribe(
(event: MouseEvent) => {
this.posX = event.clientX;
this.posY = event.clientY;
},
error => console.log(error),
() => console.log('complete!')
);
}
}
Reference
この問題について(観測可能と観測可能), 我々は、より多くの情報をここで見つけました https://velog.io/@qor8917/Observable-과-Observerテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol