跳到主要内容
版本: 23.11.1

WebWorker 类

此类表示一个 WebWorker

签名

export declare abstract class WebWorker extends EventEmitter<Record<EventType, unknown>>

继承自: EventEmitter<Record<EventType, unknown>>

备注

事件 workercreatedworkerdestroyed 在页面对象上发出,以表示 worker 的生命周期。

此类的构造函数标记为内部。第三方代码不应直接调用构造函数或创建扩展 WebWorker 类的子类。

示例

page.on('workercreated', worker =>
console.log('Worker created: ' + worker.url()),
);
page.on('workerdestroyed', worker =>
console.log('Worker destroyed: ' + worker.url()),
);

console.log('Current workers:');
for (const worker of page.workers()) {
console.log(' ' + worker.url());
}

属性

属性

修饰符

类型

描述

client

只读

CDPSession

WebWorker 所属的 CDP 会话客户端。

方法

方法

修饰符

描述

close()
evaluate(func, args)

worker 中执行给定的函数。

备注

如果给定的函数返回一个 Promise,则 evaluate 将等待 Promise 解析。

根据经验,如果给定函数的返回值比 JSON 对象更复杂(例如,大多数类),则 evaluate _很可能_ 返回一些截断的值(或 {})。这是因为我们没有返回实际的返回值,而是返回一个反序列化的版本,作为通过协议将返回值传输到 Puppeteer 的结果。

一般来说,如果 evaluate 无法正确序列化返回值,或者您需要一个对返回对象的不可变 handle,则应使用 evaluateHandle

evaluateHandle(func, args)

worker 中执行给定的函数。

备注

如果给定的函数返回一个 Promise,则 evaluate 将等待 Promise 解析。

一般来说,如果 evaluate 无法正确序列化返回值,或者您需要一个对返回对象的不可变 handle,则应使用 evaluateHandle

url()

此 web worker 的 URL。