var testFile = $("#selection").val(),
testData = getTestData(testFile);
// not working during the first time I run the function, empty
alert(testData);
function getTestData(testF) {
$.getJSON("test.php", {
fileTest: testF
}, function (data) {
$.each(data, function (index, value) {
if (value != "") {} else {
testArray[index] = value;
}
});
});
// working I see the values
alert(testArray);
// not working the first time running this function
return testArray;
}
質問する
73 次
2 に答える
0
AJAXは非同期です..したがって、値が保存される前に関数が返されている必要があります..
より高いスコープの変数に保存し、リクエストが完了したら使用することをお勧めします..
于 2012-11-07T23:36:28.013 に答える
0
返された配列を処理し、必要な処理を のコールバック関数内で行う必要がありますgetJSON()
。
getJSON
空の値を取得する理由は、呼び出しとコールバック関数の実行が完了する前に、戻り値の testArray が実行される可能性が高いためです。
これは、そのメソッドが非同期で実行されるためです。コールバック関数内でデータを処理するために必要なことは何でもする必要があります。
于 2012-11-07T23:38:19.970 に答える