javascript - Javascript html 无法设置属性内部套接字 IO 发射
问题描述
我有一些很奇怪的东西每当我尝试这段代码时它都会出错
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)
但是,如果我在套接字 Io Emit 回调之外调用 Test 函数,它可以工作但我需要它在发射内部,这样我才能获取数据这样它就可以工作
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主线程
解决方案
推荐阅读
- hybris - 无法解析属性“startingPage”的值“主页”(hybris)
- javascript - 使用谷歌地图获取纬度和经度
- abap - 按索引更改表行
- swift - 无法通过 CoreBluetooth (macos Swift) 发现蓝牙鼠标和键盘
- twitter-bootstrap-3 - 更改轮播列?
- ember.js - ember-custom-actions 插件 urlForCustomAction 不起作用
- sql - 从两个日期在sql中生成日期
- c# - 避免直接使用数字
- ios - 在 OC 项目中引入 Swift 导致编译错误
- android - Xamarin Forms:让控件在地图顶部重叠