私は、データベースからデータを取得、非同期PHPの呼び出しを持っているJavaScriptのループを持っています。データの後複数の非同期ループの後、Googleのチャートを記入
function getTaskDueNum(var, callback){
var request = $.ajax({
url: phpRoot + "get_due.php",
type: "post",
async: true,
dataType: 'text',
data: {
'var': var
},
success: function (data) { // <-- note the parameter here, not in your code
callback(data);
},
error: function (xhr, status) {
}
});
}
:PHPはこのようになります
var dueCount = {};
for(var i=1; i<=5; i++) {
//ASYNC TASK #1
getTaskDueNum(i, function(result){
dueCount[i] = result;
});
//ASYNC TASK #2
getTaskCompleteNum(i, function(result){
completeCount[i] = result;
});
}
google.charts.setOnLoadCallback(drawChart);
ただし、グラフはデータの前に描画されていますdueCountを満たす非同期呼び出しから返されます。
どのように非同期タスクが完了するのを待つようにdrawChartに指示できますか?
さらに詳しい情報を入力してください。あなたのコードはJavaScriptのようです...あなたのページにどのフレームワークも使用していますか(たとえばjQuery、Angular)?あなたのgetTask ... Num()関数はどのように見えますか? – seven77
@ seven77 – Josh