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);
Аргументы
-
pageFunctionfunction | string#Функция для выполнения в контексте воркера.
-
argEvaluationArgument (опционально)#Необязательный аргумент для передачи в 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);
Аргументы
-
pageFunctionfunction | string#Функция для выполнения в контексте воркера.
-
argEvaluationArgument (опционально)#Необязательный аргумент для передачи в pageFunction.
Возвращает
url
Использование
worker.url();
Возвращает
waitForEvent
Добавлено в: v1.57Ждёт срабатывания события и передаёт его значение в функцию-предикат. Возвращается, когда предикат возвращает truthy-значение. Выбросит ошибку, если страница будет закрыта до того, как событие сработает. Возвращает значение данных события.
Использование
// Начните ждать загрузку до клика. Обратите внимание: без await.
const consolePromise = worker.waitForEvent('console');
await worker.evaluate('console.log(42)');
const consoleMessage = await consolePromise;
Аргументы
-
Имя события — то же, которое обычно передают в
*.on(event). -
optionsOrPredicatefunction | Object (опционально)#-
predicatefunctionПолучает данные события и возвращает truthy-значение, когда ожидание должно завершиться.
-
timeoutnumber (опционально)Максимальное время ожидания в миллисекундах. По умолчанию
0— без таймаута. Значение по умолчанию можно изменить через опциюactionTimeoutв конфиге или с помощью методов browserContext.setDefaultTimeout() или page.setDefaultTimeout().
Либо предикат, получающий событие, либо объект опций. Необязательно.
-
-
optionsObject (опционально)
Возвращает
События
on('close')
Генерируется, когда данный выделенный WebWorker завершает работу.
Использование
worker.on('close', data => {});
Данные события
on('console')
Добавлено в: v1.57Испускается, когда JavaScript внутри воркера вызывает один из методов console API, например console.log или console.dir.
Использование
worker.on('console', data => {});
Данные события