range() public static method

Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages.
public static range ( $start, $count, rx\SchedulerInterface $scheduler = null ) : RangeObservable
$start
$count
$scheduler rx\SchedulerInterface
return Rx\Observable\RangeObservable
コード例 #1
0
ファイル: RangeTest.php プロジェクト: ReactiveX/RxPHP
 /**
  * @test
  */
 public function range_dispose()
 {
     $results = $this->scheduler->startWithDispose(function () {
         return Observable::range(-10, 5, $this->scheduler);
     }, 204);
     $this->assertMessages([onNext(201, -10), onNext(202, -9), onNext(203, -8)], $results->getMessages());
 }
コード例 #2
0
ファイル: RetryWithDelay.php プロジェクト: domraider/rxnet
 public function __invoke(Observable $attempts)
 {
     return Observable::range(1, $this->max)->zip([$attempts], function ($i, $e) {
         if ($i >= $this->max) {
             throw $e;
         }
         return $i;
     })->flatMap(function ($i) {
         return Observable::timer(1000);
     });
 }
コード例 #3
0
ファイル: partition.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
list($evens, $odds) = \Rx\Observable::range(0, 10)->partition(function ($x) {
    return $x % 2 === 0;
});
$evens->subscribe($createStdoutObserver('Evens '));
$odds->subscribe($createStdoutObserver('Odds '));
コード例 #4
0
ファイル: concatAll.php プロジェクト: ReactiveX/RxPHP
<?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);
コード例 #5
0
ファイル: publish.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
/* With publish */
$interval = \Rx\Observable::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();
コード例 #6
0
ファイル: takeWhile.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = \Rx\Observable::range(1, 5)->takeWhile(function ($x) {
    return $x < 3;
});
$subscription = $source->subscribe($stdoutObserver);
コード例 #7
0
ファイル: range.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$observable = \Rx\Observable::range(0, 3);
$observable->subscribe($stdoutObserver);
コード例 #8
0
ファイル: takeLast.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = \Rx\Observable::range(0, 5)->takeLast(3);
$source->subscribe($stdoutObserver);
コード例 #9
0
ファイル: flatMapTo.php プロジェクト: ReactiveX/RxPHP
<?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();
コード例 #10
0
ファイル: repeat.php プロジェクト: xsilen/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = \Rx\Observable::range(1, 3)->repeat(3);
$subscription = $source->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!
コード例 #11
0
ファイル: doOnNext.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = \Rx\Observable::range(0, 3)->doOnNext(function ($x) {
    echo 'Do Next:', $x, PHP_EOL;
});
$subscription = $source->subscribe($stdoutObserver);
コード例 #12
0
ファイル: flatMapLatest.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$loop = \React\EventLoop\Factory::create();
$scheduler = new \Rx\Scheduler\EventLoopScheduler($loop);
$source = \Rx\Observable::range(1, 3)->flatMapLatest(function ($x) {
    return \Rx\Observable::fromArray([$x . 'a', $x . 'b']);
});
$source->subscribe($stdoutObserver, $scheduler);
$loop->run();
コード例 #13
0
ファイル: toFile.php プロジェクト: RxPHP/RxStream
<?php

include __DIR__ . "/../../vendor/autoload.php";
$toFile = new \Rx\React\ToFileObserver(__DIR__ . "/../test2.csv");
\Rx\Observable::range(1, 20)->take(5)->mapTo("This is pretty cool \n")->subscribe($toFile);
コード例 #14
0
ファイル: doOnEach.php プロジェクト: ReactiveX/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = \Rx\Observable::range(0, 3)->doOnEach(new \Rx\Observer\CallbackObserver(function ($x) {
    echo 'Do Next:', $x, PHP_EOL;
}, function (Exception $err) {
    echo 'Do Error:', $err->getMessage(), PHP_EOL;
}, function () {
    echo 'Do Completed', PHP_EOL;
}));
$subscription = $source->subscribe($stdoutObserver);
コード例 #15
0
ファイル: RetryTest.php プロジェクト: ReactiveX/RxPHP
 public function testWithImmediateSchedulerWithRecursion()
 {
     $completed = false;
     $emitted = null;
     Observable::range(0, 10)->flatMap(function ($x) use(&$count) {
         if (++$count < 2) {
             return Observable::error(new \Exception("Something"));
         }
         return Observable::just(42);
     })->retry(3)->take(1)->subscribe(new CallbackObserver(function ($x) use(&$emitted) {
         $emitted = $x;
     }, null, function () use(&$completed) {
         $completed = true;
     }), new ImmediateScheduler());
     $this->assertTrue($completed);
     $this->assertEquals(42, $emitted);
 }
コード例 #16
0
ファイル: delay_foreach.php プロジェクト: RxPHP/RxAwait
<?php

require __DIR__ . '/../vendor/autoload.php';
$source = \Rx\Observable::range(0, 5)->delay(1000);
$generator = \Rx\await($source);
foreach ($generator as $item) {
    echo $item, PHP_EOL;
}
echo "DONE";
コード例 #17
0
ファイル: multicast.php プロジェクト: xsilen/RxPHP
<?php

require_once __DIR__ . '/../bootstrap.php';
$subject = new \Rx\Subject\Subject();
$source = \Rx\Observable::range(0, 3)->multicast($subject);
$subscription = $source->subscribe($stdoutObserver);
$subject->subscribe($stdoutObserver);
$connected = $source->connect();
$subscription->dispose();
//Next value: 0
//Next value: 0
//Next value: 1
//Next value: 1
//Next value: 2
//Next value: 2
//Complete!
コード例 #18
0
<?php

require_once __DIR__ . '/../bootstrap.php';
$source = \Rx\Observable::range(1, 5)->takeWhileWithIndex(function ($i) {
    return $i < 3;
});
$subscription = $source->subscribe($stdoutObserver);