puppeteer/new-docs/puppeteer.jshandle.evaluatehandle.md
Jack Franklin 6474edb9ba
feat(types): add types for $eval (#6135)
This pulls in the types (based on the DefinitelyTyped repo) for
`page.$eval` (and the `$eval` method on other classes). The `$eval`
method is quite hard to type due to the way we wrap and unwrap
ElementHandles that are passed to / returned from the `pageFunction`
that users provide.

Longer term we can improve the types by providing type overloads as
DefinitelyTyped does but I've deferred that for now (see the `TODO` in
the code for more details).
2020-07-02 10:09:34 +01:00

1.2 KiB

Home > puppeteer > JSHandle > evaluateHandle

JSHandle.evaluateHandle() method

This method passes this handle as the first argument to pageFunction.

Signature:

evaluateHandle<HandleType extends JSHandle = JSHandle>(pageFunction: EvaluateHandleFn, ...args: SerializableOrJSHandle[]): Promise<HandleType>;

Parameters

Parameter Type Description
pageFunction EvaluateHandleFn
args SerializableOrJSHandle[]

Returns:

Promise<HandleType>

Remarks

The only difference between jsHandle.evaluate and jsHandle.evaluateHandle is that jsHandle.evaluateHandle returns an in-page object (JSHandle).

If the function passed to jsHandle.evaluateHandle returns a Promise, then evaluateHandle.evaluateHandle waits for the promise to resolve and returns its value.

See Page.evaluateHandle() for more details.