次の問題があります: 関数の実行順序が正しく機能しません。関数 (テーブル) の戻り値を別の関数で取得したい。非常に単純に思えますが、命令の実行順序が適切に行われていないため、最初の関数の戻り値を取得できないため、複雑になります。
var tabImage = 新しい配列;
function remplissageDynamiqueImagesParId(idImag) {
alert("1");
var ajax = new XMLHttpRequest();
ajax.open("GET", "http://localhost/jsonrecuperImagesParId.php?id=" + idImag, true);
alert("2");
ajax.send();
alert("3");
ajax.onreadystatechange = function () {
alert("4");
if (ajax.readyState == 4 && (ajax.status == 200 || ajax.status == 0)) {
eval('var data = ' + ajax.responseText + ';');`enter code here`
var theResults = data.results;
alert("5");
for (var i = 0; i < theResults.length; i++) {
tabImage[i] = new imageFromBase(theResults[i].idImage, theResults[i].url);
}
alert("taille tableau:" + tabImage.length);
return tabImage;
}
}
} //fin methode
function test() {
alert("dans test");
var tab = new Array();
tab = remplissageDynamiqueImagesParId(10);
alert("fin test");
alert("taille tableau dans test: " + tab.length);
}
実行後、私はこれを取得します:
- ダンステスト
- 1
- 2
- 3
- フィンテスト
- 4
- 4
- 5
- テールタブロー:5
- 4
- 5
- テールタブロー:5
なぜこの注文?
どうすればテーブルを入手できますか?