Worker
Worker 類別代表 WebWorker。worker
事件會在頁面物件上發射,以表示 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 之前新增傳回 expression 的傳回值。
如果傳遞給 Worker.EvaluateAsync() 的函式傳回 Promise,則 Worker.EvaluateAsync() 將等待 Promise 解析並傳回其值。
如果傳遞給 Worker.EvaluateAsync() 的函式傳回非 Serializable 值,則 Worker.EvaluateAsync() 會傳回 undefined
。Playwright 也支援傳輸一些 JSON
無法序列化的額外值:-0
、NaN
、Infinity
、-Infinity
。
用法
await Worker.EvaluateAsync(expression, arg);
引數
-
要在瀏覽器環境中評估的 JavaScript 表達式。如果表達式評估為函式,則會自動叫用該函式。
-
arg
EvaluationArgument? (選用)#要傳遞給 expression 的選用引數。
傳回
- [object]#
EvaluateHandleAsync
在 v1.9 之前新增以 JSHandle 形式傳回 expression 的傳回值。
Worker.EvaluateAsync() 和 Worker.EvaluateHandleAsync() 之間的唯一區別在於 Worker.EvaluateHandleAsync() 傳回 JSHandle。
如果傳遞給 Worker.EvaluateHandleAsync() 的函式傳回 Promise,則 Worker.EvaluateHandleAsync() 將等待 Promise 解析並傳回其值。
用法
await Worker.EvaluateHandleAsync(expression, arg);
引數
-
要在瀏覽器環境中評估的 JavaScript 表達式。如果表達式評估為函式,則會自動叫用該函式。
-
arg
EvaluationArgument? (選用)#要傳遞給 expression 的選用引數。
傳回
Url
在 v1.9 之前新增用法
Worker.Url
傳回
事件
event Close
在 v1.9 之前新增當此專用 WebWorker 終止時發射。
用法
Worker.Close += async (_, worker) => {};
事件資料