跳到主要內容

Worker

Worker 類別代表 WebWorkerworker 事件會在頁面物件上發射,以表示 worker 的建立。close 事件會在 worker 物件上發射,表示 worker 已關閉。

page.Worker += (_, worker) =>
{
Console.WriteLine($"Worker created: {worker.Url}");
worker.Close += (_, _) => Console.WriteLine($"Worker closed {worker.Url}");
};

Console.WriteLine("Current Workers:");
foreach(var pageWorker in page.Workers)
{
Console.WriteLine($"\tWorker: {pageWorker.Url}");
}

方法

EvaluateAsync

在 v1.9 之前新增 worker.EvaluateAsync

傳回 expression 的傳回值。

如果傳遞給 Worker.EvaluateAsync() 的函式傳回 Promise,則 Worker.EvaluateAsync() 將等待 Promise 解析並傳回其值。

如果傳遞給 Worker.EvaluateAsync() 的函式傳回非 Serializable 值,則 Worker.EvaluateAsync() 會傳回 undefined。Playwright 也支援傳輸一些 JSON 無法序列化的額外值:-0NaNInfinity-Infinity

用法

await Worker.EvaluateAsync(expression, arg);

引數

  • expression string#

    要在瀏覽器環境中評估的 JavaScript 表達式。如果表達式評估為函式,則會自動叫用該函式。

  • arg EvaluationArgument? (選用)#

    要傳遞給 expression 的選用引數。

傳回

  • [object]#

EvaluateHandleAsync

在 v1.9 之前新增 worker.EvaluateHandleAsync

JSHandle 形式傳回 expression 的傳回值。

Worker.EvaluateAsync()Worker.EvaluateHandleAsync() 之間的唯一區別在於 Worker.EvaluateHandleAsync() 傳回 JSHandle

如果傳遞給 Worker.EvaluateHandleAsync() 的函式傳回 Promise,則 Worker.EvaluateHandleAsync() 將等待 Promise 解析並傳回其值。

用法

await Worker.EvaluateHandleAsync(expression, arg);

引數

  • expression string#

    要在瀏覽器環境中評估的 JavaScript 表達式。如果表達式評估為函式,則會自動叫用該函式。

  • arg EvaluationArgument? (選用)#

    要傳遞給 expression 的選用引數。

傳回


Url

在 v1.9 之前新增 worker.Url

用法

Worker.Url

傳回


事件

event Close

在 v1.9 之前新增 worker.event Close

當此專用 WebWorker 終止時發射。

用法

Worker.Close += async (_, worker) => {};

事件資料