[英]AngularJS: loop POST requests and pass each index into related response
我正在嘗試使用AngularJS執行多個http POST請求,並且需要創建一個成功完成請求的對象-像這樣:
var params = [1, 2, 3],
url,
i,
done = {};
for (i in params) {
url = '/dir/'+ params[i];
$http.post(url, {"some_request": "not important"}).
success(function(response) {
done[params[i]] = 'successful';
});
}
我想要一個具有所有成功請求的對象,如下所示:
done = {1: 'successful', 2: 'successful', 3: 'successful'};
但是顯然由於http請求的異步性質,我只能得到
done = {3: 'successful'};
因為當http請求返回響應時,循環已經完成並且處於其最后一個值。
這些請求的順序並不重要,我也不想鏈接它們(異步執行它們應該更快)。 如何將循環索引傳遞到這些響應中? 謝謝。
這將達到目的:
var params = [1, 2, 3],
url,
i,
done = {};
for (i in params) {
(function(p) {
url = '/dir/'+ params[p];
$http.post(url, {"some_request": "not important"}).
success(function(response) {
done[params[p]] = 'successful';
});
})(i);
}
另一個選擇是關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.