查詢

parallel\Future::done()函式—用法及示例

「 註冊一個回撥函式,當並行任務(parallel task)完成時,自動呼叫該回撥函式 」


函式名稱:parallel\Future::done()

適用版本:PHP 7.2.0 及以上版本

函式描述:該函式用於註冊一個回撥函式,當並行任務(parallel task)完成時,自動呼叫該回撥函式。

用法:

  1. 建立一個並行任務物件:

    $future = new parallel\Future(function() {
        // 並行任務的程式碼邏輯
        // 可以是一個函式、方法或閉包
    });
    
  2. 註冊一個回撥函式:

    $future->done(function($result) {
        // 並行任務完成後執行的回撥函式
        // $result 是並行任務的結果
    });
    

示例:

$future = new parallel\Future(function() {
    // 模擬一個耗時的並行任務
    sleep(3);
    return "Task completed!";
});

$future->done(function($result) {
    echo $result; // 輸出:Task completed!
});

// 執行並行任務
$future->start();

// 其他的程式碼邏輯
echo "Other code...";

// 等待並行任務完成
$future->wait();

在上面的示例中,我們建立了一個並行任務物件 $future,並透過建構函式傳入一個匿名函式作為並行任務的程式碼邏輯。然後,我們使用 done() 方法註冊了一個回撥函式,當並行任務完成時,該回撥函式會被自動呼叫,並將並行任務的結果作為引數傳入。在示例中,我們將結果輸出到螢幕上。

注意:在使用 done() 方法註冊回撥函式之前,必須先呼叫 start() 方法執行並行任務,然後再呼叫 wait() 方法等待並行任務完成。

補充糾錯
熱門PHP函式
分享連結