| @@ -142,8 +142,13 @@ | ||
| 142 | 142 | return $results; |
| 143 | 143 | }); |
| 144 | 144 | if (\true === $recursive) { |
| 145 | 145 | $promise = $promise->then(function ($results) use($recursive, &$promises) { |
| 146 | + // A consumed generator cannot be traversed again, so a | |
| 147 | + // recursive pass has nothing further to observe. | |
| 148 | + if ($promises instanceof \Generator) { | |
| 149 | + return $results; | |
| 150 | + } | |
| 146 | 151 | foreach ($promises as $promise) { |
| 147 | 152 | if (\YoastSEO_Vendor\GuzzleHttp\Promise\Is::pending($promise)) { |
| 148 | 153 | return self::all($promises, $recursive); |
| 149 | 154 | } |