我正在尝试使用从JSON对象中包含的函数获取的数据创建动态图表。如何获取作为变量的JSON对象的返回值
的JSON对象通过Relayr的Javascript API返回,就像是:
relayr.devices().getDeviceData({
token: toke,
deviceId: Candle1_deviceId,
incomingData: function (data) {
console.log(data.readings[0].meaning);
console.log(data.readings[0].value);
return data.readings[0].value;
}
});
而我想要做的就是让data.readings [0] .value的进入正如下图所示:
window.onload = function() {
var dps = []; // dataPoints
var chart = new CanvasJS.Chart("chartContainer", {
title: {
text: "Westminster Cathedral Building Movement Data"
},
data: [{
type: "line",
dataPoints: dps
}]
});
var xVal = 0;
var yVal;
var updateInterval = 100;
var dataLength = 500; // number of dataPoints visible at any point
var updateChart = function (count) {
count = count || 1;
// count is number of times loop runs to generate random dataPoints.
for (var j = 0; j < count; j++) {
yVal = yVal + relayr.devices().getDeviceData.incomingData;
dps.push({
x: xVal,
y: yVal
});
xVal++;
};
if (dps.length > dataLength) {
dps.shift();
}
chart.render();
};
// generates first set of dataPoints
updateChart(dataLength);
// update chart after specified time.
setInterval(function() {
updateChart()
}, updateInterval);
}
上述代码取自CanvasJS上的此示例。
你必须认识到,'relayr.devices()getDeviceData'不能直接将数据发送到图表cuz它与工作的[回调(https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes/Using_js-ctypes/Declaring_and_Using_Callbacks) – rafaelcastrocouto