AngularJS(私はIonicを使用しています)を使用して非同期呼び出しを実行する際に問題があります。 私は$localStorage
にデータを保存しています。次に、すべてのデータをサーバーに送信する機能があります。問題は、http POST要求からのエラーコールバックの場合にそれらを戻すことです。 私のコードがあります:複数のポストを処理し、angularJsでデータを取得
var data = $localStorage.prelevement.environement;
for (var j = 0; j < data.length; j++) {
$http.post("http://localhost:3000/prelevement/environement", data[j]).then(
function (res){},
function (err) {
$localStorage.prelevements.environement.push(data[j]);
});
}
ポイントは、最初のコールバックが発生した場合、ループのためにすでに終了してdata[j]
がundefined
あるのでj = data.length + 1
はので、私はエラーを得たということです。
私のコールバック関数やこれを処理するためのアイデアで送信されたデータをキャッチする方法はありますか?
あなたは各呼び出しのための$タイムアウト/ setTimeoutを入れてみましたか? – MrNew
私の意見では、 '$ http'部分をパラメータとして値を受け取ってループ内で使用する関数に移動させてください。ここで関数を使用する理由は、クロージャの利点を得ることです。 – Ali