|
4 | 4 |
|
5 | 5 | class When |
6 | 6 | { |
7 | | - public static function defer() |
8 | | - { |
9 | | - return new Deferred(); |
10 | | - } |
11 | | - |
12 | 7 | public static function resolve($promiseOrValue) |
13 | 8 | { |
14 | | - $deferred = static::defer(); |
| 9 | + $deferred = new Deferred(); |
15 | 10 | $deferred->resolve($promiseOrValue); |
16 | 11 |
|
17 | 12 | return $deferred->promise(); |
@@ -46,17 +41,15 @@ public static function any($promisesOrValues, $fulfilledHandler = null, $errorHa |
46 | 41 |
|
47 | 42 | public static function some($promisesOrValues, $howMany, $fulfilledHandler = null, $errorHandler = null, $progressHandler = null) |
48 | 43 | { |
49 | | - $deferredFactory = array(get_called_class(), 'defer'); |
50 | | - |
51 | | - return When::resolve($promisesOrValues)->then(function ($array) use ($deferredFactory, $howMany, $fulfilledHandler, $errorHandler, $progressHandler) { |
| 44 | + return When::resolve($promisesOrValues)->then(function ($array) use ($howMany, $fulfilledHandler, $errorHandler, $progressHandler) { |
52 | 45 | if (!is_array($array)) { |
53 | 46 | $array = array(); |
54 | 47 | } |
55 | 48 |
|
56 | 49 | $len = count($array); |
57 | 50 | $toResolve = max(0, min($howMany, $len)); |
58 | 51 | $values = array(); |
59 | | - $deferred = call_user_func($deferredFactory); |
| 52 | + $deferred = new Deferred(); |
60 | 53 |
|
61 | 54 | if (!$toResolve) { |
62 | 55 | $deferred->resolve($values); |
@@ -113,16 +106,14 @@ public static function some($promisesOrValues, $howMany, $fulfilledHandler = nul |
113 | 106 |
|
114 | 107 | public static function map($promisesOrValues, $mapFunc) |
115 | 108 | { |
116 | | - $deferredFactory = array(get_called_class(), 'defer'); |
117 | | - |
118 | | - return When::resolve($promisesOrValues)->then(function ($array) use ($deferredFactory, $mapFunc) { |
| 109 | + return When::resolve($promisesOrValues)->then(function ($array) use ($mapFunc) { |
119 | 110 | if (!is_array($array)) { |
120 | 111 | $array = array(); |
121 | 112 | } |
122 | 113 |
|
123 | 114 | $toResolve = count($array); |
124 | 115 | $results = array(); |
125 | | - $deferred = call_user_func($deferredFactory); |
| 116 | + $deferred = new Deferred(); |
126 | 117 |
|
127 | 118 | if (!$toResolve) { |
128 | 119 | $deferred->resolve($results); |
|
0 commit comments