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

public always ( callable $onFulfilledOrRejected )
$onFulfilledOrRejected callable
Пример #1
0
 /**
  *
  * @param EventEmitterInterface $emitter
  * @param string[] $fulfillEvents
  * @param string[] $rejectEvents
  * @param string[] $notifyEvents
  * @return ExtendedPromiseInterface
  */
 public static function listen(EventEmitterInterface $emitter, array $fulfillEvents = [], array $rejectEvents = [], array $notifyEvents = [])
 {
     $listeners = [];
     $removeListeners = function () use($emitter, &$listeners) {
         foreach ($listeners as $event => $callback) {
             $emitter->removeListener($event, $callback);
         }
         $listeners = [];
     };
     $promise = new Promise(function ($resolve, $reject, $notify) use($emitter, &$listeners, $fulfillEvents, $rejectEvents, $notifyEvents) {
         $listeners = array_merge(static::registerCallbacks($emitter, $fulfillEvents, $resolve), static::registerCallbacks($emitter, $rejectEvents, $reject), static::registerCallbacks($emitter, $notifyEvents, $notify));
     }, $removeListeners);
     return $promise->always($removeListeners);
 }