在PhpFlow中處理并行任務可以通過使用 Promise
和 all()
方法來實現。首先,您可以使用 ReactPHP
或 GuzzleHttp
庫中的 Promise
類來創建并發任務。然后,使用 all()
方法來等待所有任務完成并處理結果。
以下是一個簡單的示例代碼,演示了如何在PhpFlow中處理并行任務:
use React\Promise\Promise;
use React\Promise\all;
$promises = [
function1(),
function2(),
function3(),
];
$promises = array_map(function ($promise) {
return $promise instanceof Promise ? $promise : \React\Promise\resolve($promise);
}, $promises);
all($promises)->then(function ($results) {
// 處理所有任務完成后的結果
echo "All tasks completed: " . implode(", ", $results) . PHP_EOL;
});
function function1() {
return new Promise(function ($resolve, $reject) {
// 執行任務1
$result = "Task 1 completed";
$resolve($result);
});
}
function function2() {
return new Promise(function ($resolve, $reject) {
// 執行任務2
$result = "Task 2 completed";
$resolve($result);
});
}
function function3() {
return new Promise(function ($resolve, $reject) {
// 執行任務3
$result = "Task 3 completed";
$resolve($result);
});
}
在上面的示例中,我們定義了三個異步任務 function1()
,function2()
和 function3()
,并將它們封裝在 Promise
中。然后,我們使用 all()
方法來等待所有任務完成,并在所有任務完成后處理結果。
請注意,您可以根據需要添加更多的任務到 $promises
數組中,并在 all()
方法中處理所有任務完成后的結果。