У меня есть что-то настолько странное. Когда я пробую этот код, он выдает ошибку
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 основной поток