Is there a possible way implementing Promise inside angular.foreach?

前端 未结 2 1577
情书的邮戳
情书的邮戳 2021-01-28 15:33
 var sanitizedresult=[];
    angular.forEach(voteResult, function(value, key) {
      // console.log(value.poll_watcher_id);
      var param={
        id : value.candida         


        
2条回答
  •  野性不改
    2021-01-28 16:16

    I think you will have to write your own function to loop rather than using angular.forEach.

    This is done using recursion here

    Something like below:

    var sanitizedresult=[];
    
     var processVotes = function(voteResult,idx){
            var param={
                id : voteResult[idx].candidate_id
              }
          CandidateService.getCandidatInfo(param).then(function(success){
    
            // console.log(success);
            var row = {
                        ballot_name: success,
                        vote_count: value.count
                      }
                      console.log(row);
            sanitizedresult.push(row);
            if((idx+1) < voteResult.length){
                processVotes(voteResult,idx+1);
            }else{
               //use sanitizedResult here -- maybe a function call
            }
          },function(fail){
            console.log(fail);
            if((idx+1) < voteResult.length){
                processVotes(voteResult,idx+1);
            }else{
               //use sanitizedResult here -- maybe a function call
            }
    
          });   
     }
     processVotes(voteResult,0);
    

提交回复
热议问题