@@ -211,44 +211,6 @@ function ($mapped) use ($i, &$values, &$toResolve, $resolve): void {
211
211
}, $ cancellationQueue );
212
212
}
213
213
214
- /**
215
- * Traditional reduce function, similar to `array_reduce()`, but input may contain
216
- * promises and/or values, and `$reduceFunc` may return either a value or a
217
- * promise, *and* `$initialValue` may be a promise or a value for the starting
218
- * value.
219
- *
220
- * @param array $promisesOrValues
221
- * @param callable $reduceFunc
222
- * @param mixed $initialValue
223
- * @return PromiseInterface
224
- */
225
- function reduce (array $ promisesOrValues , callable $ reduceFunc , $ initialValue = null ): PromiseInterface
226
- {
227
- $ cancellationQueue = new Internal \CancellationQueue ();
228
-
229
- return new Promise (function ($ resolve , $ reject ) use ($ promisesOrValues , $ reduceFunc , $ initialValue , $ cancellationQueue ): void {
230
- $ total = \count ($ promisesOrValues );
231
- $ i = 0 ;
232
-
233
- $ wrappedReduceFunc = function ($ current , $ val ) use ($ reduceFunc , $ cancellationQueue , $ total , &$ i ): PromiseInterface {
234
- $ cancellationQueue ->enqueue ($ val );
235
-
236
- return $ current
237
- ->then (function ($ c ) use ($ reduceFunc , $ total , &$ i , $ val ) {
238
- return resolve ($ val )
239
- ->then (function ($ value ) use ($ reduceFunc , $ total , &$ i , $ c ) {
240
- return $ reduceFunc ($ c , $ value , $ i ++, $ total );
241
- });
242
- });
243
- };
244
-
245
- $ cancellationQueue ->enqueue ($ initialValue );
246
-
247
- \array_reduce ($ promisesOrValues , $ wrappedReduceFunc , resolve ($ initialValue ))
248
- ->done ($ resolve , $ reject );
249
- }, $ cancellationQueue );
250
- }
251
-
252
214
/**
253
215
* @internal
254
216
*/
0 commit comments