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());
Методы
evaluate
Возвращает значение, возвращаемое pageFunction.
Если функция, переданная в worker.evaluate(), возвращает Promise, то worker.evaluate() будет ожидать разрешения промиса и вернет его значение.
Если функция, переданная в worker.evaluate(), возвращает значение, не являющееся Serializable, то worker.evaluate() вернет undefined
. Playwright также поддерживает передачу некоторых дополнительных значений, которые не сериализуются через JSON
: -0
, NaN
, Infinity
, -Infinity
.
Использование
await worker.evaluate(pageFunction);
await worker.evaluate(pageFunction, arg);
Аргументы
-
pageFunction
function | string#Функция для выполнения в контексте воркера.
-
arg
EvaluationArgument (опционально)#Необязательный аргумент для передачи в pageFunction.
Возвращает
evaluateHandle
Возвращает значение, возвращаемое pageFunction в виде JSHandle.
Единственное отличие между worker.evaluate() и worker.evaluateHandle() заключается в том, что worker.evaluateHandle() возвращает JSHandle.
Если функция, переданная в worker.evaluateHandle(), возвращает Promise, то worker.evaluateHandle() будет ожидать разрешения промиса и вернет его значение.
Использование
await worker.evaluateHandle(pageFunction);
await worker.evaluateHandle(pageFunction, arg);
Аргументы
-
pageFunction
function | string#Функция для выполнения в контексте воркера.
-
arg
EvaluationArgument (опционально)#Необязательный аргумент для передачи в pageFunction.
Возвращает
url
Использование
worker.url();
Возвращает
События
on('close')
Генерируется, когда данный выделенный WebWorker завершает работу.
Использование
worker.on('close', data => {});
Данные события