コード例 #1
0
ファイル: filter.php プロジェクト: bluetechy/Rx.PHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = new Rx\Observable\ArrayObservable(array(21, 42, 84));
$observable->filter(function ($elem) {
    return $elem >= 42;
})->subscribe($stdoutObserver);
コード例 #2
0
ファイル: map.php プロジェクト: bluetechy/Rx.PHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = new Rx\Observable\ArrayObservable(array(21, 42));
$observable->map(function ($elem) {
    return $elem * 2;
})->subscribe($stdoutObserver);
コード例 #3
0
ファイル: flatMap.php プロジェクト: bluetechy/Rx.PHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = React\EventLoop\Factory::create();
$scheduler = new Rx\Scheduler\EventLoopScheduler($loop);
$observable = new Rx\Observable\ArrayObservable(range(1, 5), $scheduler);
$selectManyObservable = $observable->flatMap(function ($value) {
    return new Rx\Observable\ArrayObservable(range(1, $value));
}, $scheduler);
$disposable = $selectManyObservable->subscribe($stdoutObserver, $scheduler);
$loop->run();
コード例 #4
0
ファイル: groupBy.php プロジェクト: bluetechy/Rx.PHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = new Rx\Observable\ArrayObservable(array(21, 42, 21, 42, 21, 42));
$observable->groupBy(function ($elem) {
    if ($elem === 42) {
        return 0;
    }
    return 1;
}, null, function ($key) {
    return $key;
})->subscribeCallback(function ($groupedObserver) use($createStdoutObserver) {
    $groupedObserver->subscribe($createStdoutObserver($groupedObserver->getKey() . ": "));
});
コード例 #5
0
ファイル: publish.php プロジェクト: voryx/Rx.PHP
require_once __DIR__ . '/../bootstrap.php';
/* Without publish */
$interval = new Rx\Observable\ArrayObservable(range(0, 10));
$source = $interval->take(2)->doOnNext(function ($x) {
    echo "Side effect\n";
});
$source->subscribe($createStdoutObserver('SourceA '));
$source->subscribe($createStdoutObserver('SourceB '));
//Side effect
//SourceA Next value: 0
//Side effect
//SourceA Next value: 1
//SourceA Complete!
/* With publish */
$interval = new Rx\Observable\ArrayObservable(range(0, 10));
$source = $interval->take(2)->doOnNext(function ($x) {
    echo "Side effect\n";
});
$published = $source->publish();
$published->subscribe($createStdoutObserver('SourceC '));
$published->subscribe($createStdoutObserver('SourceD '));
$published->connect();
//Side effect
//SourceC Next value: 0
//SourceD Next value: 0
//Side effect
//SourceC Next value: 1
//SourceD Next value: 1
//SourceC Complete!
//SourceD Complete!
コード例 #6
0
ファイル: take.php プロジェクト: Katakeyni/Rx.PHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = new Rx\Observable\ArrayObservable(array(21, 42, 63));
$observable->take(2)->subscribe($stdoutObserver);
コード例 #7
0
ファイル: repeat.php プロジェクト: voryx/Rx.PHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = new \Rx\Observable\ArrayObservable(range(1, 3));
$subscription = $source->repeat(3)->subscribe($createStdoutObserver());
//Next value: 1
//Next value: 2
//Next value: 3
//Next value: 1
//Next value: 2
//Next value: 3
//Next value: 1
//Next value: 2
//Next value: 3
//Complete!