【发布时间】:2016-10-29 04:12:13
【问题描述】:
我有 API 服务:
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) 时(必须多次拨打)。如:
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是[](最后一个函数的响应数据)。
当我调用秒函数或其他方式获取最后一个响应数据并为vm.listData设置时,如何取消第一个函数中的待处理API调用。
我研究了一些关于cancel pending API calls 的文章,但对我的问题没有帮助。
感谢您的帮助:)
【问题讨论】:
标签: javascript angularjs api promise restangular