跳到主要內容

Worker

Worker 類別代表 WebWorker。當頁面物件發出 worker 事件時,表示已建立 worker。當 worker 消失時,worker 物件會發出 close 事件。

page.onWorker(worker -> {
System.out.println("Worker created: " + worker.url());
worker.onClose(worker1 -> System.out.println("Worker destroyed: " + worker1.url()));
});
System.out.println("Current workers:");
for (Worker worker : page.workers())
System.out.println(" " + worker.url());

方法

evaluate

在 v1.9 之前新增 worker.evaluate

傳回 expression 的傳回值。

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

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

用法

Worker.evaluate(expression);
Worker.evaluate(expression, arg);

參數

  • expression String#

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

  • arg EvaluationArgument (選用)#

    傳遞給 expression 的選用參數。

傳回


evaluateHandle

在 v1.9 之前新增 worker.evaluateHandle

JSHandle 形式傳回 expression 的傳回值。

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

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

用法

Worker.evaluateHandle(expression);
Worker.evaluateHandle(expression, arg);

參數

  • expression String#

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

  • arg EvaluationArgument (選用)#

    傳遞給 expression 的選用參數。

傳回


url

在 v1.9 之前新增 worker.url

用法

Worker.url();

傳回


waitForClose

新增於:v1.10 worker.waitForClose

執行動作並等待 Worker 關閉。

用法

Worker.waitForClose(callback);
Worker.waitForClose(callback, options);

參數

  • options Worker.WaitForCloseOptions (選用)

    • setTimeout double (選用)新增於:v1.9#

      等待的最大時間(以毫秒為單位)。預設值為 30000(30 秒)。傳遞 0 以停用逾時。可以使用 BrowserContext.setDefaultTimeout() 變更預設值。

  • callback Runnable新增於:v1.9#

    執行觸發事件的動作的回呼函式。

傳回


事件

onClose(handler)

在 v1.9 之前新增 worker.onClose(handler)

當此專用的 WebWorker 終止時發出。

用法

Worker.onClose(handler)

事件資料