Worker.onmessage
Свойство onmessage
интерфейса Worker
представляет собой обработчик event handler
, который будет вызван когда произойдёт событие message
. Тип этого события MessageEvent
и оно будет вызвано когда worker-объект получит сообщение из выполняемого им кода (т.е из метода DedicatedWorkerGlobalScope.postMessage
.
Примечание: Данные события доступны в свойстве data события message
.
Синтаксис
myWorker.onmessage = function(e) { ... }
Пример
Следующий пример кода показывает создание объекта Worker
используя конструктор Worker()
. События попадают в объект, когда значение внутри поля ввода формы first
изменяется. Обработчик onmessage указан для обработки сообщений, которые приходят назад из кода объекта в текущий контекст выполнения.
var myWorker = new Worker("worker.js");
first.onchange = function () {
myWorker.postMessage([first.value, second.value]);
console.log("Сообщение, отправленное в worker-объект");
};
myWorker.onmessage = function (e) {
result.textContent = e.data;
console.log("Сообщение полученное из worker-объекта");
};
В скрипте worker.js
, обработчик onmessage
используется для обработки событий, полученных из главного скрипта:
onmessage = function (e) {
console.log("Сообщение полученное из главного скрипта");
var workerResult = "Результат: " + e.data[0] * e.data[1];
console.log("Отправка сообщения назад в главный скрипт");
postMessage(workerResult);
};
Посмотрите как в скрипте worker.js
вызывается обработчик onmessage
. В нем присутствует только глобальное свойство onmessage
, потому что worker-объект фактически является областью видимости (DedicatedWorkerGlobalScope
).
Для полного примера смотрите наш Basic dedicated worker example (run dedicated worker).
Спецификации
Specification |
---|
HTML Standard # event-message |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
Интерфейс Worker
, которому принадлежит этот обработчик.