Пример #1
0
 function testTick()
 {
     $check = 0;
     setTimeout(function () use(&$check) {
         $check++;
     }, 1);
     nextTick(function () use(&$check) {
         $check++;
     });
     tick();
     $this->assertEquals(1, $check);
 }
Пример #2
0
 /**
  * @param Promise $subPromise
  * @param callable $callBack
  * @return void
  */
 private function invokeCallback(Promise $subPromise, callable $callBack = null)
 {
     nextTick(function () use($callBack, $subPromise) {
         if (is_callable($callBack)) {
             try {
                 $result = $callBack($this->value);
                 if ($result instanceof self) {
                     $result->then([$subPromise, 'fulfill'], [$subPromise, 'reject']);
                 } else {
                     $subPromise->fulfill($result);
                 }
             } catch (\Exception $e) {
                 // If the event handler threw an exception, we need to make sure that
                 // the chained promise is rejected as well.
                 $subPromise->reject($e);
             }
         } else {
             if ($this->state === self::FULFILLED) {
                 $subPromise->fulfill($this->value);
             } else {
                 $subPromise->reject($this->value);
             }
         }
     });
 }