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; 

を設定しようとしたが、それはすべてのさらなる反復を停止します。

答えて

2

次の繰り返しに進むには、callback関数を使用する必要があります。すなわち

if(data == null){ 
    cb(); //in your case, cb is your callback function 
} 
+0

現在のコールバックの繰り返しから戻ってもらえませんか? 'cb();私はOPのコードではそれほど大きな違いはありませんが、 'return;'を使うともっと最適化され、明示的になります。 –

+0

彼はすでに 'return;'が彼のために働いていないと言いました。彼の 'cb'関数を呼び出す –

関連する問題