RxJSでズンドコ

  • 1
    Like
  • 0
    Comment
More than 1 year has passed since last update.

ズンドコキヨシについてはこちら ⇒ ズンドコキヨシまとめ

おもむろに RxJS & ES2015 でやってみました。

import {Rx} from 'rx';

const subject = new Rx.Subject();

function doZunDoko() {
    while (!subject.isStopped) {
        if (Math.random() > 0.5) {
            subject.onNext('ズン');
        } else {
            subject.onNext('ドコ');
        }
    }
}

const subscription = subject
    .doOnNext((aString) => console.log(aString))
    .bufferWithCount(5, 1)
    .filter((aArray) => aArray.join(',') === 'ズン,ズン,ズン,ズン,ドコ')
    .take(1)
    .subscribe(() => {
        console.log('キ・ヨ・シ!');
        subject.onCompleted();
        subscription.dispose();
    });

doZunDoko();

スクリーンショット 2016-03-18 23.40.25.png

実際の挙動はこちらから確認できます(GitHub Pages)。
http://hkusu.github.io/rxjs-zundoko/

コンソールを開いてください。

ソースは GitHub に置きました。
https://github.com/hkusu/rxjs-zundoko