Skip to main content
Version: 23.8.0

WebWorker 类

¥WebWorker class

该类代表 WebWorker

¥This class represents a WebWorker.

签名

¥Signature

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

Extends: EventEmitter<Record<EventType, unknown>>

备注

¥Remarks

事件 workercreatedworkerdestroyed 在页面对象上触发,以向工作线程生命周期发送信号。

¥The events workercreated and workerdestroyed are emitted on the page object to signal the worker lifecycle.

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

¥The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the WebWorker class.

示例

¥Example

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());
}

属性

¥Properties

属性

修饰符

类型

描述

client

readonly

CDPSession

WebWorker 所属的 CDP 会话客户端。

方法

¥Methods

方法

修饰符

描述

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。