resolve() публичный Метод

public resolve ( $value = null )
 /**
  * @override
  * @inheritDoc
  */
 protected function command($params = [])
 {
     $runtime = $this->runtime;
     $promise = new Promise();
     $runtime->once('destroy', function () use($promise) {
         $promise->resolve('Runtime has been destroyed');
     });
     $runtime->destroy()->then(null, function ($ex) use($promise) {
         $promise->reject($ex);
     }, function ($ex) use($promise) {
         $promise->cancel($ex);
     });
     return $promise;
 }
Пример #2
0
 /**
  * @override
  * @inheritDoc
  */
 public function destroy()
 {
     $state = $this->getState();
     if ($state === Runtime::STATE_DESTROYED) {
         return Promise::doResolve('Runtime has been already destroyed.');
     }
     $controller = $this;
     return $controller->stop()->then(function () {
         return Promise::doResolve()->then(function () {
             return $this->getRuntimeManager()->getRuntimes();
         })->then(function ($runtimes) {
             return $this->getRuntimeManager()->destroyRuntimes($runtimes, Runtime::DESTROY_FORCE);
         });
     })->then(function () use($controller) {
         $promise = new Promise();
         $emitter = $controller->getEventEmitter();
         $emitter->emit('beforeDestroy');
         $emitter->emit('destroy');
         $controller->getLoop()->onTick(function () use($controller, $promise) {
             $controller->setState(Runtime::STATE_DESTROYED);
             $controller->setLoopState(self::LOOP_STATE_STOPPED);
             $controller->stopLoop();
             $emitter = $controller->getEventEmitter();
             $emitter->emit('afterDestroy');
             $promise->resolve();
         });
         return $promise->then(function () {
             return 'Runtime has been destroyed.';
         });
     });
 }