で保留中のAPI呼び出しをキャンセル、私はAPIサービスがあります。がRestangular
var SearchSuggestionApi = function (Restangular) {
return {
getSuggestion: function (keyword) {
return Restangular.one('search').customGET(null, {keyword:keyword});
}
};
};
SearchSuggestionApi.$inject = [
'Restangular'
];
を私はこのAPIを呼び出すためのコントローラを持っている:
vm.getSuggestion = function (keyword) {
SearchSuggestionApi.getSuggestion(keyword)
.then(
function (data) {
vm.listData = data;
}, function (error) {
console.log(error);
});
};
私の問題は、私はvm.getSuggestion(keyword)
2または多くの時間を呼び出すとき(呼び出す必要があります1回よりも)。以下のような:
vm.getSuggestion('a'); // => Return a array with many object in this
vm.getSuggestion('a b');// => Return empty array
vm.getSuggestion('a')
のでリターン多くのデータ、それはvm.getSuggestion('a b')
後に終了します。だからvm.listData
は[{object1}, {object2}, ...]
ですが、vm.listData
は[]
(最後の機能の応答データ)です。
seconds関数を呼び出すか、最後の応答データを取得する別の方法を呼び出してvm.listData
に設定すると、最初の関数で保留中のAPI呼び出しをキャンセルする方法を教えてください。
私はcancel pending API calls
についていくつかの記事を調査しましたが、私の問題について私を助けません。あなたの助けのための
感謝:)
解決策は '' vm.keyword === keyword'チェックですが、私はあなたの答えを受け入れます。本当にありがとう :) – WorkWe