函式名:eio_poll()
適用版本:PHP 5 >= 5.4.0, PHP 7, PECL ev >= 0.2.0
用法:eio_poll ( void )
說明:eio_poll() 函式用於阻塞地等待非同步事件完成。
引數:無
返回值:對於成功,返回 true。對於錯誤,返回 false。
示例:
<?php
// 建立一個新的事件輪詢
$loop = eio_create(EIO_PRI_DEFAULT);
// 定義一個非同步任務
function my_async_task($data, $callback_data)
{
echo "開始執行非同步任務\n";
// 延遲1秒,模擬非同步任務
sleep(1);
echo "非同步任務完成\n";
// 通知事件輪詢非同步任務已完成
eio_done($callback_data, EIO_PRI_DEFAULT);
}
// 在事件輪詢中註冊非同步任務
eio_nop(EIO_PRI_DEFAULT, "my_async_task", $loop);
// 啟動事件輪詢
eio_poll();
echo "事件輪詢完成\n";
?>
解釋:以上示例使用了eio_poll()
函式來阻塞地等待非同步任務完成。首先,我們建立了一個新的事件輪詢$loop
。然後,我們定義了一個名為my_async_task
的非同步任務函式,該函式模擬一個非同步任務,延遲1秒鐘。接下來,我們使用eio_nop()
函式在事件輪詢中註冊了這個非同步任務。最後,我們透過呼叫eio_poll()
函式來等待非同步任務完成,並在任務完成後輸出"事件輪詢完成"。