📚 查看原文

class: Worker

Worker 类表示一个 WebWorker。在页面对象上 workercreatedworkerdestroyed 事件被触发,以标识 worker 的生命周期。

  1. page.on('workercreated', worker => console.log('Worker created: ' + worker.url()));
  2. page.on('workerdestroyed', worker => console.log('Worker destroyed: ' + worker.url()));
  3. console.log('Current workers:');
  4. for (const worker of page.workers())
  5. console.log(' ' + worker.url());

worker.evaluate(pageFunction, …args)

  • pageFunction <[function]|[string]> Function to be evaluated in the worker context
  • ...args <…[Serializable]|[JSHandle]> Arguments to pass to pageFunction
  • returns: <[Promise]<[Serializable]>> Promise which resolves to the return value of pageFunction

如果传递给 worker.evaluate 的函数返回一个 [Promise],那么 worker.evaluate 将等待解析并返回它的值。

如果传递给 worker.evaluate 的函数返回一个 非[序列化]的值,那么 worker.evaluate 解析为 undefined

(await worker.executionContext()).evaluate(pageFunction, …args) 的快捷链接。

worker.evaluateHandle(pageFunction, …args)

  • pageFunction <[function]|[string]> Function to be evaluated in the page context
  • ...args <…[Serializable]|[JSHandle]> Arguments to pass to pageFunction
  • returns: <[Promise]<[JSHandle]>> Promise which resolves to the return value of pageFunction as in-page object (JSHandle)

worker.evaluateworker.evaluateHandle 之间的唯一区别是 worker.evaluateHandle 返回页内对象(JSHandle)。

如果传递给 worker.evaluateHandle 的函数返回一个 [Promise],那么 worker.evaluateHandle 将等待解析并返回它的值。

(await worker.executionContext()).evaluateHandle(pageFunction, …args) 的快捷链接。

worker.executionContext()

  • returns: <[Promise]<[ExecutionContext]>>

worker.url()

  • returns: <[string]>