Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить переменую после self.addEventListener(\'message (https://javascript.ru/forum/misc/77520-kak-poluchit-peremenuyu-posle-self-addeventlistener-%27message.html)

HelloIm 16.05.2019 04:50

Как получить переменую после self.addEventListener('message
 
Отправляю в сервис воркер переменную

navigator.serviceWorker.controller.postMessage({'uid': currentToken });


sw.js
 
'use strict';  

 user_id = '1';

self.addEventListener('install', function (event) {
    event.waitUntil(self.skipWaiting());
});

self.addEventListener('message', function (evt) {
  console.log('postMessage received', evt.data );
  self.user_id =   "&aid=1513&token=" + evt.data.uid ;
  console.log('1 = ' + user_id ); // Вижу - 1 = нормально полученный user_id  
})
  console.log('2 = ' + user_id ); // Вижу - 2 = 1 .. всё переменная пропала



Как увидеть эту переменную глобально в сервис воркере можно ? :help:

Malleys 16.05.2019 09:44

Переменная никуда не пропадала, событие message, произошло позже вывода в консоль, где написанное начинается с «2 =».

Вместо того, чтобы присваивать глобальной переменной, вы можете нормально полученный user_id использовать как хотите, например, передать в функцию в качестве аргумента.


Часовой пояс GMT +3, время: 18:30.