跳至主要内容

Worker

Worker类代表一个WebWorker。当创建工作线程时,会在页面对象上触发worker事件。当工作线程结束时,会在工作线程对象上触发close事件。

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

Added before 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的可选参数。

返回

  • [对象]#

EvaluateHandleAsync

Added before v1.9 worker.EvaluateHandleAsync

expression的返回值作为JSHandle返回。

Worker.EvaluateAsync()Worker.EvaluateHandleAsync() 之间的唯一区别在于 Worker.EvaluateHandleAsync() 会返回 JSHandle

如果传递给Worker.EvaluateHandleAsync()的函数返回一个Promise,那么Worker.EvaluateHandleAsync()将等待该promise解析并返回其值。

用法

await Worker.EvaluateHandleAsync(expression, arg);

参数

  • expression string#

    将在浏览器上下文中评估的JavaScript表达式。如果表达式评估为一个函数,该函数将自动被调用。

  • arg EvaluationArgument? (可选)#

    传递给expression的可选参数。

返回


网址

Added before v1.9 worker.Url

用法

Worker.Url

返回


事件

关闭事件

Added before v1.9 worker.event Close

当这个专用的WebWorker被终止时触发。

用法

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

事件数据