code: public static function await($promise = null, $unwrap = true)
      {
          self::awaitInstances();
  
          if (null === $promise) {
              return null;
          }
  
          if (is_callable([$promise, 'then'])) {
              $isPromiseCompleted = false;
              $resolvedValue = null;
              $rejectedReason = null;
  
              $promise->then(
                  function ($value) use (&$isPromiseCompleted, &$resolvedValue) {
                      $isPromiseCompleted = true;
                      $resolvedValue = $value;
                  },
                  function ($reason) use (&$isPromiseCompleted, &$rejectedReason) {
                      $isPromiseCompleted = true;
                      $rejectedReason = $reason;
                  }
              );
  
              //Promise is completed?
              if ($isPromiseCompleted) {
                  // rejected ?
                  if ($rejectedReason instanceof \Exception) {
                      if (!$unwrap) {
                          return $rejectedReason;
                      }
                      throw $rejectedReason;
                  }
  
                  return $resolvedValue;
              }
          }
  
          if (empty(self::$instances)) {
              throw new \RuntimeException('Found no active DataLoader instance.');
          }
  
          return self::$instances[0]->getPromiseAdapter()->await($promise, $unwrap);
      }
docs: {@inheritdoc}