2
asyncjs
を使用してGoogleのグラフを読み込んでいます。async.jqueryでレスポンスがnullの場合は、スキップを繰り返します。
は、ここでは、時にはそれはnullを返し、さらに反復が停止している、私のコード
async.eachSeries($('.WeeklyGraph'), function(e, cb){
var ticker = $(e).data('coin');
// console.log(ticker);
$('#'+ticker+'loader').removeClass("hide-sideLoader");
$.getJSON('https://coincap.io/history/7day/'+ticker, function(data){
// console.log(data);
var month = new Array();
month[0] = "Jan";
month[1] = "Feb";
month[2] = "Mar";
month[3] = "Apr";
month[4] = "May";
month[5] = "Jun";
month[6] = "Jul";
month[7] = "Aug";
month[8] = "Sep";
month[9] = "Oct";
month[10] = "Nov";
month[11] = "Dec";
var CoinPrices = data['price'];
$.each(CoinPrices, function(index, CoinObject){
var date = new Date(CoinObject[0]);
var day = date.getDate();
var Month = date.getMonth();
var hours = date.getHours()+ ":" + date.getMinutes();
CoinObject[0] = day+" "+month[Month]+" "+hours;
});
google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(function(){
var data = new google.visualization.DataTable();
data.addColumn('string', '');
data.addColumn('number', '');
data.addRows(CoinPrices);
var options = {
enableInteractivity: false,
legend: {position: 'none'},
hAxis: {
title: '',
baselineColor: 'none',
ticks: [],
gridlines: {color: 'none'}
},
vAxis: {
title: '',
baselineColor: 'none',
ticks: [],
gridlines: {color: 'none'}
},
colors: ['#74b42a', '#74b42a']
};
var chartID = ticker+'chart_div';
var chart = new google.visualization.LineChart(document.getElementById(chartID));
chart.draw(data, options);
$('#'+ticker+'loader').addClass("hide-sideLoader");
// $("#chartContent"+coinID).removeClass("hide-chart");
});
cb();
});
});
私は応答を取得しています今data
変数です。
私はその
if (data == null)
return;
または
if (data == null)
return true;
を設定しようとしたが、それはすべてのさらなる反復を停止します。
現在のコールバックの繰り返しから戻ってもらえませんか? 'cb();私はOPのコードではそれほど大きな違いはありませんが、 'return;'を使うともっと最適化され、明示的になります。 –
彼はすでに 'return;'が彼のために働いていないと言いました。彼の 'cb'関数を呼び出す –