@@ -211,44 +211,6 @@ function ($mapped) use ($i, &$values, &$toResolve, $resolve): void {
211211 }, $ cancellationQueue );
212212}
213213
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-
252214/**
253215 * @internal
254216 */
0 commit comments