Javascript html невозможно установить атрибут <div>внутри сокета IO emit - PullRequest
0 голосов
/ 07 августа 2020

У меня есть что-то настолько странное. Когда я пробую этот код, он выдает ошибку

socket.emit('TotalEarningsDays', '?', (data) => {
    console.log(data.TotalSunday);
    Test()
    
});
    
function Test(){
     var x = document.getElementById("TotalEarningsChart");

     x.setAttribute("data-series",'[[{"meta":"Sunday","value":"33"}, {"meta":"Monday","value":"87"},{"meta":"Tuesday","value":"470"},{"meta":"Wednesday","value":"580"},{"meta":"Thursday","value":"380"},{"meta":"Friday","value":"600"},{"meta":"Saturday","value":"707"}]]');
}

Таким образом, он дает ошибку:

VM4401:26 Uncaught TypeError: Cannot read property 'setAttribute' of null
at Test (<anonymous>:26:9)
at r.<anonymous> (<anonymous>:19:1)
at r.onack (index.js:83)
at r.onpacket (index.js:83)
at r.<anonymous> (index.js:83)
at r.emit (index.js:83)
at r.ondecoded (index.js:83)
at a.<anonymous> (index.js:83)
at a.r.emit (index.js:83)
at a.add (index.js:83)

Но если я вызываю функцию Test вне socket Io Emit callback он работает Но мне он нужен внутри emit, чтобы я мог получить данные Таким образом, он работает

socket.emit('TotalEarningsDays', '?', (data) => {
     console.log(data.TotalSunday);
});
    
Test()

function Test(){
    var x = document.getElementById("TotalEarningsChart");
    
    x.setAttribute("data-series",'[[{"meta":"Sunday","value":"33"}, {"meta":"Monday","value":"87"},{"meta":"Tuesday","value":"470"},{"meta":"Wednesday","value":"580"},{"meta":"Thursday","value":"380"},{"meta":"Friday","value":"600"},{"meta":"Saturday","value":"707"}]]');
}

Он напоминает мне java основной поток

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...