# class:worker
### class: Worker v0.9.0
Worker 類表示一個 [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)。在頁面對象上 `workercreated` 和 `workerdestroyed` 事件被觸發,以標識 worker 的生命周期。
```
page.on('workercreated', worker => console.log('Worker created: ' + worker.url()));page.on('workerdestroyed', worker => console.log('Worker destroyed: ' + worker.url()));console.log('Current workers:');for (const worker of page.workers()) console.log(' ' + worker.url());
```
#### Methods
- [worker.evaluate(pageFunction, ...args)](#?product=Puppeteer&version=v1.11.0&show=api-workerevaluatepagefunction-args)v0.9.0
- [worker.evaluateHandle(pageFunction, ...args)](#?product=Puppeteer&version=v1.11.0&show=api-workerevaluatehandlepagefunction-args)v0.9.0
- [worker.executionContext()](#?product=Puppeteer&version=v1.11.0&show=api-workerexecutioncontext)v0.9.0
- [worker.url()](#?product=Puppeteer&version=v1.11.0&show=api-workerurl)v0.9.0
### Methods
#### worker.evaluate(pageFunction, ...args)v0.9.0
- `pageFunction` <[function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function "Function")|[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String")> Function to be evaluated in the worker context
- `...args` <...[Serializable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description "Serializable")|[JSHandle](#?product=Puppeteer&version=v1.11.0&show=api-class-jshandle "JSHandle")> Arguments to pass to `pageFunction`
- returns: <[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise")<[Serializable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description "Serializable")>> Promise which resolves to the return value of `pageFunction`
如果傳遞給 `worker.evaluate` 的函數返回一個 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise"),那么 `worker.evaluate` 將等待解析并返回它的值。
如果傳遞給 `worker.evaluate` 的函數返回一個 非\[序列化\]的值,那么 `worker.evaluate` 解析為 `undefined`。
[(await worker.executionContext()).evaluate(pageFunction, ...args)](#?product=Puppeteer&version=v1.11.0&show=api-executioncontextevaluatepagefunction-args) 的快捷鏈接。
#### worker.evaluateHandle(pageFunction, ...args)v0.9.0
- `pageFunction` <[function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function "Function")|[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String")> Function to be evaluated in the page context
- `...args` <...[Serializable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description "Serializable")|[JSHandle](#?product=Puppeteer&version=v1.11.0&show=api-class-jshandle "JSHandle")> Arguments to pass to `pageFunction`
- returns: <[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise")<[JSHandle](#?product=Puppeteer&version=v1.11.0&show=api-class-jshandle "JSHandle")>> Promise which resolves to the return value of `pageFunction` as in-page object (JSHandle)
`worker.evaluate` 和 `worker.evaluateHandle` 之間的唯一區別是 `worker.evaluateHandle` 返回頁內對象(JSHandle)。
如果傳遞給 `worker.evaluateHandle` 的函數返回一個 [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise"),那么 `worker.evaluateHandle` 將等待解析并返回它的值。
[(await worker.executionContext()).evaluateHandle(pageFunction, ...args)](#?product=Puppeteer&version=v1.11.0&show=api-executioncontextevaluatehandlepagefunction-args) 的快捷鏈接。
#### worker.executionContext()v0.9.0
- returns: <[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise")<[ExecutionContext](#?product=Puppeteer&version=v1.11.0&show=api-class-executioncontext "ExecutionContext")>>
#### worker.url()v0.9.0
- returns: <[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "String")>

puppeteer.js中文網|class:worker
puppeteer.js中文文檔, puppeteer chrome, puppeteer firefox, puppeteer api 中文文檔
puppeteer.js中文網包含了Puppeteer中文文檔,最新資訊,應用案例等。Puppeteer 是一個 Node 庫,它提供了一個高級 API 來通過 DevTools 協議控制 Chromium 或 Chrome。
- Introduction
- 版本記錄
- 概要
- puppeteer-vs-puppeteer-core
- 環境變量
- error-handling
- working-with-chrome-extensions
- class:puppeteer
- class:browserfetcher
- class:browser
- class:page
- class:worker
- class:accessibility
- class:keyboard
- class:mouse
- class:touchscreen
- class:tracing
- class:dialog
- class:consolemessage
- class:frame
- class:executioncontext
- class:jshandle
- class:elementhandle
- class:request
- class:response
- class:securitydetails
- class:target
- class:cdpsession
- class:coverage
- class:timeouterror