Skip to main content
Version: 23.2.0

WebWorker.evaluate() 方法

¥WebWorker.evaluate() method

评估 worker 中的给定函数。

¥Evaluates a given function in the worker.

签名

¥Signature

class WebWorker {
evaluate<
Params extends unknown[],
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>,
>(func: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>;
}

参数

¥Parameters

范围

类型

描述

func

功能 | 字符串

待评估的功能。

args

参数

要传递到 func 的参数。

Returns:

Promise<Awaited<ReturnType<Func>>>

func 的结果。

¥The result of func.

备注

¥Remarks

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

¥If the given function returns a promise, evaluate will wait for the promise to resolve.

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

¥As a rule of thumb, if the return value of the given function is more complicated than a JSON object (e.g. most classes), then evaluate will likely return some truncated value (or {}). This is because we are not returning the actual return value, but a deserialized version as a result of transferring the return value through a protocol to Puppeteer.

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

¥In general, you should use evaluateHandle if evaluate cannot serialize the return value properly or you need a mutable handle to the return object.