簡體   English   中英

AngularJS:循環POST請求,並將每個索引傳遞到相關的響應中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM