scheduleRecursive() public method

public scheduleRecursive ( callable $action )
$action callable
Ejemplo n.º 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();
         }
     });
 }
Ejemplo n.º 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();
     });
 }