2017年05月03日

RxJSのSubject

RxJSのSubjectの使い方メモ
インスタンスに指定したsubscribe()はnext()が実行されたタイミングで発火します。

@Component({
selector: 'app',
template: `<button (click)='click()'>click</button>`
})
export class App {
Observable = new Subject();
ngOnInit(){
this.Observable
.subscribe(()=>{
console.log("ok")
})
}
click(){
this.Observable.next();
}
}


引数を与えれば、引数を受け取って実行する

@Component({
selector: 'app',
template: `<button (click)='click()'>click</button>`
})
export class App {
Observable = new Subject();
ngOnInit(){
this.Observable
.subscribe(val=>{
console.log(val)
})
}
click(){
this.Observable.next('値')
}
}


complete()が実行されれば購読が中止される

@Component({
selector: 'app',
template: `<button (click)='click()'>click</button>`
})
export class App {
Observable = new Subject();
ngOnInit(){
this.Observable
.subscribe(()=>{
console.log("finish")
})
}
click(){
this.Observable.next();
this.Observable.complete()
}
}


Observableのsubscribeに指定をすることで全てのストリームの内容を実行します。

@Component({
selector: 'app',
template: `<button (click)='click()'>click</button>`
})
export class App {
Subject = new Subject();
ngOnInit(){
this.Subject
.subscribe(v=>{
console.log(v)
})
}
click(){
var observable = Observable.from([1, 2, 3]);
observable.subscribe(this.Subject)
}
}
posted by ねこまんま at 15:52 | Comment(0) | TrackBack(0) | RxJS | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック