Объект диаграммы должен обеспечивать своего рода обратный вызов, чтобы вы знали, когда данные доступны.
Что-то вроде
theChart.onData = function(data){
console.log(data);
// or
console.log(theChart.data);
}
, если это недоступно, у вас будетиспользовать тайм-ауты, чтобы купить функциональность.Поскольку вы не можете знать, может ли сервер занять некоторое время для ответа, вам, возможно, придется повторять попытку.
Эта (непроверенная) функция должна вызывать внутреннюю функцию до тех пор, пока не станут доступны данные, которые, в свою очередь, вызовут предоставленную функцию обратного вызова.
function chartdata(ch,cb){
(function(){
if(ch.data === null){
window.setTimeout(arguments.callee, 100);
} else {
cb(ch);
}
})();
};
Вы использовали бы ее так:
chartdata(new chart( selector, 135, 92, style, frequency, time), function(theChart){
console.log(theChart.data);
});
Возможно, вы захотите добавить условие прерывания, если сервер вообще не отвечает.