Ejemplo n.º 1
0
<?php

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

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::range(0, 5)->skipLast(3);
$observable->subscribe($stdoutObserver);
Ejemplo n.º 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);
Ejemplo n.º 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);
Ejemplo n.º 5
0
<?php

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

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::fromArray([21, 42, 84]);
$observable->filter(function ($elem) {
    return $elem >= 42;
})->subscribe($stdoutObserver);
Ejemplo n.º 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();
Ejemplo n.º 8
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::range(1, 5)->skipWhileWithIndex(function ($i, $value) {
    return $i < 3;
});
$observable->subscribe($stdoutObserver);
Ejemplo n.º 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();
Ejemplo n.º 10
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::range(1, 10)->sum();
$subscription = $source->subscribe($stdoutObserver);
Ejemplo n.º 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);
Ejemplo n.º 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();
Ejemplo n.º 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();
Ejemplo n.º 14
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$subscription = Rx\Observable::fromArray([21, 42])->mapTo(1)->subscribe($stdoutObserver);
Ejemplo n.º 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();
Ejemplo n.º 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
Ejemplo n.º 17
0
<?php

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

require_once __DIR__ . '/../bootstrap.php';
$source = Rx\Observable::start(function () {
    return 42;
});
$source->subscribe($stdoutObserver);
//Next value: 42
//Complete!
Ejemplo n.º 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());
Ejemplo n.º 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();
Ejemplo n.º 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();
Ejemplo n.º 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();
Ejemplo n.º 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();
Ejemplo n.º 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();
Ejemplo n.º 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
Ejemplo n.º 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();
Ejemplo n.º 27
0
<?php

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

require_once __DIR__ . '/../bootstrap.php';
$observable = Rx\Observable::range(1, 5)->skipWhile(function ($x) {
    return $x < 3;
});
$observable->subscribe($stdoutObserver);
Ejemplo n.º 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();
Ejemplo n.º 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);