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.
Возвращает
- [Promise]<[Serializable]>#
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.
Возвращает
- [Promise]<[JSHandle]>#
url
Использование
worker.url();
Возвращает
- [string]#
События
on('close')
Генерируется, когда данный выделенный WebWorker завершает работу.
Использование
worker.on('close', data => {});
Данные события
- [Worker]