Skip to content

Commit a37c28e

Browse files
committed
Improve API documentation
1 parent 769eebb commit a37c28e

File tree

2 files changed

+74
-9
lines changed

2 files changed

+74
-9
lines changed

README.md

+47-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ whatsoever!*
2626

2727
* [Usage](#usage)
2828
* [parallel()](#parallel)
29+
* [series()](#series)
2930
* [waterfall()](#waterfall)
3031
* [Todo](#todo)
3132
* [Install](#install)
@@ -61,6 +62,9 @@ Async\parallel(…);
6162

6263
### parallel()
6364

65+
The `parallel(array<callable> $tasks, ?callable $callback = null, ?callable $errback = null): void` function can be used
66+
like this:
67+
6468
```php
6569
<?php
6670

@@ -89,14 +93,56 @@ React\Async\parallel(
8993
var_dump($result);
9094
}
9195
},
92-
function (\Exception $e) {
96+
function (Exception $e) {
97+
throw $e;
98+
}
99+
);
100+
```
101+
102+
### series()
103+
104+
The `series(array<callable> $tasks, ?callable $callback = null, ?callable $errback = null): void` function can be used
105+
like this:
106+
107+
```php
108+
<?php
109+
110+
use React\EventLoop\Loop;
111+
112+
React\Async\series(
113+
array(
114+
function ($callback, $errback) {
115+
Loop::addTimer(1, function () use ($callback) {
116+
$callback('Slept for a whole second');
117+
});
118+
},
119+
function ($callback, $errback) {
120+
Loop::addTimer(1, function () use ($callback) {
121+
$callback('Slept for another whole second');
122+
});
123+
},
124+
function ($callback, $errback) {
125+
Loop::addTimer(1, function () use ($callback) {
126+
$callback('Slept for yet another whole second');
127+
});
128+
},
129+
),
130+
function (array $results) {
131+
foreach ($results as $result) {
132+
var_dump($result);
133+
}
134+
},
135+
function (Exception $e) {
93136
throw $e;
94137
}
95138
);
96139
```
97140

98141
### waterfall()
99142

143+
The `waterfall(array<callable> $tasks, ?callable $callback = null, ?callable $errback = null): void` function can be used
144+
like this:
145+
100146
```php
101147
<?php
102148

src/functions.php

+27-8
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22

33
namespace React\Async;
44

5-
function parallel($tasks, $callback = null, $errback = null)
5+
/**
6+
* @param array<callable> $tasks
7+
* @param ?callable $callback
8+
* @param ?callable $errback
9+
* @return void
10+
*/
11+
function parallel(array $tasks, $callback = null, $errback = null)
612
{
713
$results = array();
814
$errors = array();
915

10-
$taskErrback = function ($error) use (&$errors, &$checkDone) {
11-
$errors[] = $error;
12-
$checkDone();
13-
};
14-
1516
$done = function () use (&$results, &$errors, $callback, $errback) {
1617
if (!$callback) {
1718
return;
@@ -38,6 +39,11 @@ function parallel($tasks, $callback = null, $errback = null)
3839
}
3940
};
4041

42+
$taskErrback = function ($error) use (&$errors, $checkDone) {
43+
$errors[] = $error;
44+
$checkDone();
45+
};
46+
4147
foreach ($tasks as $i => $task) {
4248
$taskCallback = function ($result) use (&$results, $i, $checkDone) {
4349
$results[$i] = $result;
@@ -48,10 +54,17 @@ function parallel($tasks, $callback = null, $errback = null)
4854
}
4955
}
5056

51-
function series($tasks, $callback = null, $errback = null)
57+
/**
58+
* @param array<callable> $tasks
59+
* @param ?callable $callback
60+
* @param ?callable $errback
61+
* @return void
62+
*/
63+
function series(array $tasks, $callback = null, $errback = null)
5264
{
5365
$results = array();
5466

67+
/** @var callable():void $next */
5568
$taskCallback = function ($result) use (&$results, &$next) {
5669
$results[] = $result;
5770
$next();
@@ -76,7 +89,13 @@ function series($tasks, $callback = null, $errback = null)
7689
$next();
7790
}
7891

79-
function waterfall($tasks, $callback = null, $errback = null)
92+
/**
93+
* @param array<callable> $tasks
94+
* @param ?callable $callback
95+
* @param ?callable $errback
96+
* @return void
97+
*/
98+
function waterfall(array $tasks, $callback = null, $errback = null)
8099
{
81100
$taskCallback = function () use (&$next) {
82101
call_user_func_array($next, func_get_args());

0 commit comments

Comments
 (0)