2021-01-07 11:46:05 -08:00
|
|
|
# class: Worker
|
|
|
|
|
|
|
|
The Worker class represents a [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). `worker`
|
|
|
|
event is emitted on the page object to signal a worker creation. `close` event is emitted on the worker object when the
|
|
|
|
worker is gone.
|
|
|
|
|
|
|
|
```js
|
|
|
|
page.on('worker', worker => {
|
|
|
|
console.log('Worker created: ' + worker.url());
|
|
|
|
worker.on('close', worker => console.log('Worker destroyed: ' + worker.url()));
|
|
|
|
});
|
|
|
|
|
|
|
|
console.log('Current workers:');
|
|
|
|
for (const worker of page.workers())
|
|
|
|
console.log(' ' + worker.url());
|
|
|
|
```
|
|
|
|
|
|
|
|
## event: Worker.close
|
|
|
|
- type: <[Worker]>
|
|
|
|
|
|
|
|
Emitted when this dedicated [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) is terminated.
|
|
|
|
|
|
|
|
## async method: Worker.evaluate
|
|
|
|
- returns: <[Serializable]>
|
|
|
|
|
|
|
|
Returns the return value of [`param: pageFunction`]
|
|
|
|
|
|
|
|
If the function passed to the `worker.evaluate` returns a [Promise], then `worker.evaluate` would wait for the promise
|
|
|
|
to resolve and return its value.
|
|
|
|
|
|
|
|
If the function passed to the `worker.evaluate` returns a non-[Serializable] value, then `worker.evaluate` returns
|
|
|
|
`undefined`. DevTools Protocol also supports transferring some additional values that are not serializable by `JSON`:
|
|
|
|
`-0`, `NaN`, `Infinity`, `-Infinity`, and bigint literals.
|
|
|
|
|
|
|
|
### param: Worker.evaluate.pageFunction
|
2021-01-08 16:17:54 -08:00
|
|
|
* langs: js
|
2021-01-07 11:46:05 -08:00
|
|
|
- `pageFunction` <[function]|[string]>
|
|
|
|
|
|
|
|
Function to be evaluated in the worker context
|
|
|
|
|
|
|
|
### param: Worker.evaluate.arg
|
|
|
|
- `arg` <[EvaluationArgument]>
|
|
|
|
|
|
|
|
Optional argument to pass to [`param: pageFunction`]
|
|
|
|
|
|
|
|
## async method: Worker.evaluateHandle
|
|
|
|
- returns: <[JSHandle]>
|
|
|
|
|
|
|
|
Returns the return value of [`param: pageFunction`] as in-page object (JSHandle).
|
|
|
|
|
|
|
|
The only difference between `worker.evaluate` and `worker.evaluateHandle` is that `worker.evaluateHandle` returns
|
|
|
|
in-page object (JSHandle).
|
|
|
|
|
|
|
|
If the function passed to the `worker.evaluateHandle` returns a [Promise], then `worker.evaluateHandle` would wait for
|
|
|
|
the promise to resolve and return its value.
|
|
|
|
|
|
|
|
### param: Worker.evaluateHandle.pageFunction
|
2021-01-08 16:17:54 -08:00
|
|
|
* langs: js
|
2021-01-07 11:46:05 -08:00
|
|
|
- `pageFunction` <[function]|[string]>
|
|
|
|
|
|
|
|
Function to be evaluated in the page context
|
|
|
|
|
|
|
|
### param: Worker.evaluateHandle.arg
|
|
|
|
- `arg` <[EvaluationArgument]>
|
|
|
|
|
|
|
|
Optional argument to pass to [`param: pageFunction`]
|
|
|
|
|
|
|
|
## method: Worker.url
|
|
|
|
- returns: <[string]>
|