| Conditions | 4 |
| Paths | 3 |
| Total Lines | 23 |
| Code Lines | 11 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 17 | protected function deferredResolve($resolvedValue, FieldInterface $field, callable $callback) { |
||
| 18 | if ($resolvedValue instanceof DeferredResolverInterface) { |
||
| 19 | $deferredResult = new DeferredResult($resolvedValue, function ($resolvedValue) use ($field, $callback) { |
||
| 20 | // Allow nested deferred resolvers. |
||
| 21 | return $this->deferredResolve($resolvedValue, $field, $callback); |
||
| 22 | }); |
||
| 23 | |||
| 24 | // Whenever we stumble upon a deferred resolver, add it to the queue to be |
||
| 25 | // resolved later. |
||
| 26 | $type = $field->getType()->getNamedType(); |
||
| 27 | if ($type instanceof AbstractScalarType || $type instanceof AbstractEnumType) { |
||
| 28 | array_push($this->deferredResultsLeaf, $deferredResult); |
||
| 29 | } |
||
| 30 | else { |
||
| 31 | array_push($this->deferredResultsComplex, $deferredResult); |
||
| 32 | } |
||
| 33 | |||
| 34 | return $deferredResult; |
||
| 35 | } |
||
| 36 | |||
| 37 | // For simple values, invoke the callback immediately. |
||
| 38 | return $callback($resolvedValue); |
||
| 39 | } |
||
| 40 | |||
| 41 | } |