Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/rxjs/2.3.22/rx.all.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var source = Rx.Observable.create(function (observer) {
    // `onNext`を使って、`num`を500ミリ秒ずつobserverにプッシュする
    var num = 0;
    var id = setInterval(function () {
        observer.onNext(num++);
    }, 500);
 
    setTimeout(function () {
        // 10秒後に、「ストリームが完了した」合図を送る
        observer.onCompleted();
    }, 10000);
 
    // もちろん、尻ぬぐいの手段を提供しないとダメです
    return function () {
        console.log('disposed');
        clearInterval(id);
    };
});
 
var subscription = source.subscribe(
    function (x) {
        console.log('onNext: ' + x);
    },
    function (e) {
        console.log('onError: ' + e.message);
    },
    function () {
        console.log('onCompleted');
    });
 
setTimeout(function () {
    subscription.dispose();
}, 5000);
 
// => onNext: 0
// => onNext: 1
// => onNext: 2
// => onNext: 3
// => onNext: 4
// => onNext: 5
// => onNext: 6
// => onNext: 7
// => onNext: 8
// => disposed
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x