のサイクルは、私はこのように、のために関数を呼び出すときに、この機能のすべてのi番目の応答が返されます。私はのためにJavaScript関数を呼び出すと、最後
for(var i=0; i<$scope.staffdispensers.length; i++){
console.log($scope.staffdispensers[i].dispenser.iddispenser);
restService.Enforsaleproductsbyiddispenser($scope.staffdispensers[i].dispenser.iddispenser, _getnumber, _error);
}
はこれがありますこの関数の実装は:
Enforsaleproductsbyiddispenser: function(id, _getnumber, _error){
var currentToken = _GetToken();
_timerTokenControl(currentToken, _error);
if (setupTime == null) {
console.log("token scaduto");
$window.location.href="login.html";
}
if (currentToken !== null) {
$http({
method : 'GET',
url : REST_URL+'products/nforsalebyiddisp/'+id
}).then(function successCallback(response) {
_getnumber(response);
}, function errorCallback(response) {
console.log(response.statusText);
});
} else {
$window.location.href="login.html";
console.log("NON SEI LOGGATO!!!");
}
}
これを見てください。 "_getnumber(応答);"すべてのforループを終了した後に呼び出されます。 これは_getnumber機能である:私は
コンソールを見るとfunction _getnumber(response){
number.push(response.data);
console.log(number);
}
は、番号配列で、私はそれぞれの機能のすべての結果を持っている:
しかし、私はリフレッシュしようとした場合ページ、私は同じ値を持っているが、別の順序である!
そして、これがために起こる "_getnumber(レスポンス);"すべてのforループを終了した後に呼び出されます。それを見て:
は、私は、iでステップバイステップを_getnumber呼び出したい私のメインemployee.jsで
:残り-services.jsで
:
結果の順序に問題はありますか?もしそうなら、あなたは約束のために非同期を使うかもしれません。 – briosheje
問題は順序です!私はこれらの値を順番に欲しいですが、この場合の順序はランダムです –
これは、http要求が非同期であるためです。主に問題を解決するには2つの方法があります:1)索引付きの通常のループ。 2)約束のある非同期ループ。レキシカルスコープの男。 – briosheje