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 | 参数 | 要传递到 |
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.