0

との約束をキャンセルし、私は、前の呼び出しをキャンセルしています:が先行入力シナリオでメッセージ

function($http, $window, $q, $timeout){ 

     var suggestions = []; 
     var cancel = $q.defer(); 

     return { 

      getSuggestions : function(inputText){ 

       var deferred =$q.defer(); 
       var promise = deferred.promise; 

       cancel.resolve('request cancelled'); 
       cancel = $q.defer(); 
       var baseUrl = "http://localhost:8080/PackagingTest/hello"; 
       var params = { 
        query : inputText, 
        suggestionsSize : 10 
       } 

       $http.get(baseUrl, {params : params, timeout : cancel.promise}).then(
        function(response){ 
         suggestions = repsonse; 
         deferred.resolve(suggestions); 
        }, function(error){ 

         //check if cancelled and log the error message 
         if(){ 
           console.log(someErrorMsg);//should log 'request cancelled' 
         } 
         console.log(error); 
         deferred.reject(error); 
        }); 

       return promise; 
      } 

     } 
    } 

をこれが取り消し新しいリクエストが行われるたびに前のリクエストしかし、私はキャンセルされたステータスメッセージを取得することができません。 $ httpエラーハンドラはdata: null, status: -1, config: Object, statusText: "", headers: functionで呼び出されますが、テキストでプロパティを見つけることができません。間違っているのですか、リクエストが中止されたときにメッセージを添付する手段がありませんか?

+0

を、私はあなたが前の呼び出しをキャンセルしているところを見ていませんよ。そのコードを表示します。 –

+0

はここで修正されたようです:https://github.com/angular/angular.js/issues/15924 – gaurav5430

答えて

0

catchハンドラーにデータを渡す方法は実際にはabortにあります。以下はonabortコールバックがあり、その角度は、内部的に使用しています:

var requestError = function() { 
    // The response is always empty 
    // See https://xhr.spec.whatwg.org/#request-error-steps and https://fetch.spec.whatwg.org/#concept-network-error 
    completeRequest(callback, -1, null, null, ''); 
    }; 

completeRequestの定義である場合:

function completeRequest(callback, status, response, headersString, statusText) {...} 
関連する問題