我正在嘗試使用從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