2016-06-20 6 views
0

私はhttp投稿を発砲しており、成功したときに別の投稿を発砲します。 これで、両方の呼び出しから応答を収集して比較する必要があります。成功を使用しているanglejsの連続したhttpコール

問題私が直面しているのは、2番目の呼び出しの成功の中に書かれたコードが実行されていないことです。デバッガもまた、奇妙な動作をしています。 2番目の成功のコードの最初の行だけがコンソールであり、デバッガは他の行には行かない。

this._docgenService.getTemplate(alreadyExistingTemplateId).success(
       serverTemplate => { 

        console.log(serverTemplate); 
        return this._docgenService.getXMLParts(files).success(
        localTemplate => { 
         console.log(localTemplate); 
         var addItemToMappingContract = true; 
         for (var i = 0; i < localTemplate.tags.length; i++) { 
          console.log("for loop"); 
          for (var j = 0; j < serverTemplate.mappings[0].templateElements.contentTexts.length; j++) { 
           if (localTemplate.tags[i].name === serverTemplate.mappings[0].templateElements.contentTexts[j].name) { 
            addItemToMappingContract = false; 
            break; 
           } 
          } 

          if (addItemToMappingContract === true) { 
           var tempContextText: Mapping.IContentText; 
           angular.copy(serverTemplate.mappings[0].templateElements.contentTexts[0], tempContextText); 
           serverTemplate.mappings[0].templateElements.contentTexts.add(
           {}); 
          } 
         } 


        } 

        ); 


       }) 

答えて

0

(最初の非同期関数が呼び出された後に)success関数を実行すると、2番目の非同期呼び出しが返されます。あなたはそれを実行するのではなく、2番目の約束を手渡しています。約束しているreturnを削除してみてください:

this._docgenService.getXMLParts(files).success(
        localTemplate => { ... 
+0

私はそれを前には戻っていませんでしたが、どこでも私は約束を返すと言いました。どちらも私のために同じ行動を与えています。 – Charu

関連する問題