Worker
Worker类代表一个WebWorker。当创建工作线程时,会在页面对象上触发worker
事件。当工作线程结束时,会在工作线程对象上触发close
事件。
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());
方法
评估
Added before v1.9返回pageFunction的返回值。
如果传递给worker.evaluate()的函数返回一个Promise,那么worker.evaluate()将等待该promise解析并返回其值。
如果传递给worker.evaluate()的函数返回一个非Serializable值,那么worker.evaluate()会返回undefined
。Playwright还支持传输一些无法通过JSON
序列化的额外值:-0
、NaN
、Infinity
、-Infinity
。
用法
await worker.evaluate(pageFunction);
await worker.evaluate(pageFunction, arg);
参数
-
pageFunction
function | string#要在worker上下文中评估的函数。
-
arg
EvaluationArgument (可选)#传递给pageFunction的可选参数。
返回
evaluateHandle
Added before v1.9将pageFunction的返回值作为JSHandle返回。
worker.evaluate() 和 worker.evaluateHandle() 之间的唯一区别在于 worker.evaluateHandle() 会返回 JSHandle。
如果传递给worker.evaluateHandle()的函数返回一个Promise,那么worker.evaluateHandle()将等待该promise解析并返回其值。
用法
await worker.evaluateHandle(pageFunction);
await worker.evaluateHandle(pageFunction, arg);
参数
-
pageFunction
function | string#要在worker上下文中评估的函数。
-
arg
EvaluationArgument (可选)#传递给pageFunction的可选参数。
返回
网址
Added before v1.9用法
worker.url();
返回
事件
on('close')
Added before v1.9当这个专用的WebWorker被终止时触发。
用法
worker.on('close', data => {});
事件数据