我有一个搜索框,对于用户输入的每个字母,我都有4个API调用。 如果用户键入一个长字,许多API调用将处于挂起状态。如果之前的呼叫处于待定状态,用户键入的每个新字母如何检查和取消。
FController.prototype.typeAheadSearch = function (query) {
var this_ = this;
var dfd = this.$q.defer();
this.$q.all([this.TypeAheadFactory.API.A(query),
this.TypeAheadFactory.API.B(query),
this.TypeAheadFactory.API.C(query),
this.TypeAheadFactory.API.D(query)])
.then(function (responses) {
// to do
dfd.resolve(results);
});
return dfd.promise;
}
答案 0 :(得分:0)
您可以拦截请求和响应并对其进行处理。 angularjs中有一个拦截器的概念。更多信息可以在这里找到: https://docs.angularjs.org/api/ng/service/ $ HTTP
希望这有帮助。