WebWorker.evaluate() 方法
在 worker 中计算给定的函数。
签名
class WebWorker {
evaluate<
Params extends unknown[],
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>,
>(func: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>;
}
参数
参数 | 类型 | 描述 |
---|---|---|
func | Func | string | 要计算的函数。 |
args | Params | 传递给 |
返回值
Promise<Awaited<ReturnType<Func>>>
func
的结果。
备注
如果给定的函数返回一个 promise,evaluate 将等待 promise 解析。
一般来说,如果给定函数的返回值比 JSON 对象(例如,大多数类)复杂,那么 evaluate _很可能_ 返回一些截断的值(或 {}
)。 这是因为我们返回的不是实际的返回值,而是通过协议将返回值传输到 Puppeteer 后反序列化的版本。
一般来说,如果 evaluate 无法正确序列化返回值,或者你需要一个可变的 handle 来访问返回对象,则应使用 evaluateHandle。