상속: implements Rx\SchedulerInterface
예제 #1
0
 public function subscribe(ObserverInterface $observer, SchedulerInterface $scheduler = null)
 {
     if ($this->scheduler !== null) {
         $scheduler = $this->scheduler;
     }
     if ($scheduler === null) {
         $scheduler = new ImmediateScheduler();
     }
     $i = 0;
     return $scheduler->scheduleRecursive(function ($reschedule) use(&$observer, &$i) {
         if ($i < $this->count) {
             $observer->onNext($this->start + $i);
             $i++;
             $reschedule();
         } else {
             $observer->onCompleted();
         }
     });
 }
예제 #2
0
 public function subscribe(ObserverInterface $observer, SchedulerInterface $scheduler = null)
 {
     $values =& $this->data;
     $max = count($values);
     $keys = array_keys($values);
     $count = 0;
     if ($scheduler === null) {
         $scheduler = new ImmediateScheduler();
     }
     return $scheduler->scheduleRecursive(function ($reschedule) use(&$observer, &$values, $max, &$count, $keys) {
         if ($count < $max) {
             $observer->onNext($values[$keys[$count]]);
             $count++;
             if ($count >= 1) {
                 $reschedule();
                 return;
             }
         }
         $observer->onCompleted();
     });
 }
예제 #3
0
 /**
  * @test
  */
 public function now_returns_the_time()
 {
     $scheduler = new ImmediateScheduler();
     $this->assertTrue(abs(time() * 1000 - $scheduler->now()) < 1000, "time difference is less than or equal to 1");
 }