<?php

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::range(1, 6)->bufferWithCount(2, 1)->subscribe($stdoutObserver);
Beispiel #2
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::range(0, 5)->skipLast(3);
$observable->subscribe($stdoutObserver);
Beispiel #3
0
<?php

require_once __DIR__ . '/../bootstrap.php';
use Rx\Observable\ArrayObservable;
$observable = Rx\Observable::fromArray([1, 1, 2, 3, 5, 8, 13]);
$observable->skip(3)->subscribe($stdoutObserver);
Beispiel #4
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::range(0, 3)->map(function ($x) {
    return \Rx\Observable::range($x, 3);
})->concatAll();
$subscription = $source->subscribe($stdoutObserver);
Beispiel #5
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::error(new Exception('Oops!'));
$observable->subscribe($stdoutObserver);
Beispiel #6
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::fromArray([21, 42, 84]);
$observable->filter(function ($elem) {
    return $elem >= 42;
})->subscribe($stdoutObserver);
Beispiel #7
0
<?php

use Rx\Observer\CallbackObserver;
require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$codes = [['id' => 38], ['id' => 38], ['id' => 40], ['id' => 40], ['id' => 37], ['id' => 39], ['id' => 37], ['id' => 39], ['id' => 66], ['id' => 65]];
$source = Rx\Observable::fromArray($codes)->concatMap(function ($x) {
    return \Rx\Observable::timer(100)->mapTo($x);
})->groupByUntil(function ($x) {
    return $x['id'];
}, function ($x) {
    return $x['id'];
}, function ($x) {
    return Rx\Observable::timer(200);
});
$subscription = $source->subscribe(new CallbackObserver(function (\Rx\Observable $obs) {
    // Print the count
    $obs->count()->subscribe(new CallbackObserver(function ($x) {
        echo 'Count: ', $x, PHP_EOL;
    }));
}, function (Exception $err) {
    echo 'Error', $err->getMessage(), PHP_EOL;
}, function () {
    echo 'Completed', PHP_EOL;
}), $scheduler);
$loop->run();
Beispiel #8
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::range(1, 5)->skipWhileWithIndex(function ($i, $value) {
    return $i < 3;
});
$observable->subscribe($stdoutObserver);
Beispiel #9
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$source = Rx\Observable::just(42)->repeatWhen(function (\Rx\Observable $notifications) {
    return $notifications->scan(function ($acc, $x) {
        return $acc + $x;
    }, 0)->delay(1000)->doOnNext(function () {
        echo "1 second delay", PHP_EOL;
    })->takeWhile(function ($count) {
        return $count < 2;
    });
});
$subscription = $source->subscribe($createStdoutObserver(), $scheduler);
$loop->run();
Beispiel #10
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::range(1, 10)->sum();
$subscription = $source->subscribe($stdoutObserver);
Beispiel #11
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$obs2 = Rx\Observable::just(42);
$source = \Rx\Observable::error(new Exception("Some error"))->catchError(function (Exception $e, \Rx\Observable $sourceObs) use($obs2) {
    return $obs2;
});
$subscription = $source->subscribe($stdoutObserver);
Beispiel #12
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = new \React\EventLoop\StreamSelectLoop();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$source = Rx\Observable::interval(1000)->map(function ($n) {
    if ($n === 2) {
        throw new Exception();
    }
    return $n;
})->retryWhen(function ($errors) {
    return $errors->delay(200);
})->take(6);
$subscription = $source->subscribe($createStdoutObserver(), $scheduler);
$loop->run();
Beispiel #13
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = React\EventLoop\Factory::create();
$scheduler = new Rx\Scheduler\EventLoopScheduler($loop);
$observable = Rx\Observable::range(1, 5);
$selectManyObservable = $observable->flatMapTo(\Rx\Observable::range(0, 2));
$disposable = $selectManyObservable->subscribe($stdoutObserver, $scheduler);
$loop->run();
Beispiel #14
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$subscription = Rx\Observable::fromArray([21, 42])->mapTo(1)->subscribe($stdoutObserver);
Beispiel #15
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$source = Rx\Observable::range(0, 5)->concatMap(function ($x, $i) use($scheduler) {
    return \Rx\Observable::interval(100, $scheduler)->take($x)->map(function () use($i) {
        return $i;
    });
});
$subscription = $source->subscribe($stdoutObserver);
$loop->run();
Beispiel #16
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = React\EventLoop\Factory::create();
$scheduler = new Rx\Scheduler\EventLoopScheduler($loop);
$observable = Rx\Observable::just(42)->repeat();
$otherObservable = Rx\Observable::just(21)->repeat();
$mergedObservable = $observable->merge($otherObservable, $scheduler)->take(10);
$disposable = $mergedObservable->subscribe($stdoutObserver, $scheduler);
$loop->run();
//Next value: 42
//Next value: 21
//Next value: 42
//Next value: 21
//Next value: 42
//Next value: 21
//Next value: 42
//Next value: 21
//Current memory usage: 838.547K
Beispiel #17
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$subscriptions = Rx\Observable::fromArray([21, 42])->mapWithIndex(function ($index, $elem) {
    return $index + $elem;
})->subscribe($stdoutObserver);
Beispiel #18
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::start(function () {
    return 42;
});
$source->subscribe($stdoutObserver);
//Next value: 42
//Complete!
Beispiel #19
0
<?php

require_once __DIR__ . '/../bootstrap.php';
//With a seed
$source = Rx\Observable::range(1, 3);
$subscription = $source->scan(function ($acc, $x) {
    return $acc * $x;
}, 1)->subscribe($createStdoutObserver());
Beispiel #20
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$count = 0;
$observable = Rx\Observable::interval(1000, $scheduler)->flatMap(function ($x) use(&$count) {
    if (++$count < 2) {
        return Rx\Observable::error(new \Exception("Something"));
    }
    return Rx\Observable::just(42);
})->retry(3)->take(1);
$observable->subscribe($stdoutObserver);
$loop->run();
Beispiel #21
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$obs = \Rx\Observable::interval(100, $scheduler)->take(3)->mapWithIndex(function ($i) {
    return $i;
});
$source = Rx\Observable::range(0, 5)->concatMapTo($obs);
$subscription = $source->subscribe($stdoutObserver);
$loop->run();
Beispiel #22
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = React\EventLoop\Factory::create();
$scheduler = new Rx\Scheduler\EventLoopScheduler($loop);
$sources = Rx\Observable::range(0, 3)->map(function ($x) {
    return Rx\Observable::range($x, 3);
});
$merged = \Rx\Observable::mergeAll($sources);
$disposable = $merged->subscribe($stdoutObserver, $scheduler);
$loop->run();
Beispiel #23
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = React\EventLoop\Factory::create();
$scheduler = new Rx\Scheduler\EventLoopScheduler($loop);
$observable = Rx\Observable::range(1, 5);
$selectManyObservable = $observable->flatMap(function ($value) {
    return Rx\Observable::range(1, $value);
}, $scheduler);
$disposable = $selectManyObservable->subscribe($stdoutObserver, $scheduler);
$loop->run();
Beispiel #24
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$source = Rx\Observable::fromArray([\Rx\Observable::interval(100)->mapTo('a'), \Rx\Observable::interval(200)->mapTo('b'), \Rx\Observable::interval(300)->mapTo('c')])->switchFirst()->take(3);
$subscription = $source->subscribe($stdoutObserver, $scheduler);
$loop->run();
Beispiel #25
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = new \React\EventLoop\StreamSelectLoop();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
Rx\Observable::interval(1000)->timeout(500)->subscribe($createStdoutObserver("One second - "), $scheduler);
Rx\Observable::interval(100)->take(3)->timeout(500)->subscribe($createStdoutObserver("100 ms     - "), $scheduler);
$loop->run();
// Output:
//100 ms     - Next value: 0
//100 ms     - Next value: 1
//100 ms     - Next value: 2
//100 ms     - Complete!
//One second - Exception: timeout
Beispiel #26
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$source = Rx\Observable::race([Rx\Observable::timer(500)->map(function () {
    return 'foo';
}), Rx\Observable::timer(200)->map(function () {
    return 'bar';
})]);
$source->subscribe($stdoutObserver, $scheduler);
$loop->run();
Beispiel #27
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::range(0, 9)->average();
$subscription = $source->subscribe($stdoutObserver);
Beispiel #28
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::range(1, 5)->skipWhile(function ($x) {
    return $x < 3;
});
$observable->subscribe($stdoutObserver);
Beispiel #29
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$observable = Rx\Observable::interval(1000)->skipUntil(\Rx\Observable::timer(5000))->take(3);
$observable->subscribe($stdoutObserver, $scheduler);
$loop->run();
Beispiel #30
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::fromArray([(object) ['value' => 0], (object) ['value' => 1], (object) ['value' => 2]])->pluck('value');
$subscription = $source->subscribe($stdoutObserver);