2017-03-21 1 views
0

私はapiを持っています'rest/latest/testruns/16543558' IDはテスト実行IDです。ワンショットで異なるIDでコールを更新したい。私は$promise.all()で試しました。その私が、個々のIDを与える場合は、私は1つのIDが正常に動作して、複数のIDにその与えエラー

を与える場合は正常に動作:

var ids = ['16611544']; //'16611345','16611347' 

$scope.updateTestRun = function(data) { 
    data.showedit = true; 
    $scope.label = 'Save'; 

    var updateform = {}; 
    var updateArr = []; 
    for (var i = 0; i < data.length; i++) { 
     var testrunid = data[i].data.data.id; 
     var updatedata = data[i].data.data.fields; 
     updateform['fields'] = data[i].data.data.fields; 
     updateform.fields['duration'] = 1000; 
     delete updateform.fields['executionDate']; 

     for (var j = 0; j < data[i].data.data.fields.testRunSteps.length; j++) { 
     data[i].data.data.fields.testRunSteps[j].status = data[i].data.data.fields.testRunStatus; 
     } 


     updateArr.push($http.put("rest/latest/testruns/" + testrunid, updateform)) 
     j = 0; 
     $scope.loader = true; 
    } 
} 
+0

Wheids IDは使用されていますか? – lonewarrior556

答えて

0

uは1つのショット

を上に複数のリクエストを送信するために $q.allを使用することができます
var fullArray = []; 

for (var i = 0; i < data.length; i++) { 
    var testrunid = data[i].data.data.id; 
    var updatedata = data[i].data.data.fields; 
    updateform['fields'] = data[i].data.data.fields; 
    updateform.fields['duration'] = 1000; 
    delete updateform.fields['executionDate']; 
    for (var j = 0; j < data[i].data.data.fields.testRunSteps.length; j++) { 
     data[i].data.data.fields.testRunSteps[j].status = data[i].data.data.fields.testRunStatus; 
    } 
    j = 0; 
    $scope.loader = true; 
    // push all request to array 

    fullArray.push($http.put("rest/latest/testruns/" + testrunid, updateform)) 
} 
$q.all(fullArray).then(function(values) { 
    //resoponse 
}); 
+0

これだけ試しました。私は1つのIDを与える場合、そのうまく動作します。複数の@sachila ranawakaを更新していない場合は、Qの前に –

+0

コソール 'fullArray'をすべて更新し、ids –