【发布时间】:2016-06-10 22:12:39
【问题描述】:
我正在尝试使用从 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不能将数据直接发送到图表,因为它与 callback 一起使用
标签: javascript json return return-value