我想延迟对以下 whenGET 的响应:
$httpBackend.whenGET(/^foobar/).respond(function () {
return [200,{}];
});
但是,使用 $timeout 同步执行此操作似乎是不可能的,所以我不确定如何处理?
我想延迟对以下 whenGET 的响应:
$httpBackend.whenGET(/^foobar/).respond(function () {
return [200,{}];
});
但是,使用 $timeout 同步执行此操作似乎是不可能的,所以我不确定如何处理?
如果您只想延迟特定响应,则可以延迟将响应分配给范围属性。
如果您将调用包装到自定义服务方法中,则可以将响应包装到承诺中并在需要时解决它:
JS:
angular.module('app').service('myService', function($q, $timeout){
this.getData = function() {
var delay = 300,
origPromise = $http.get('someUrl'),
deferred = $q.defer();
$timeout(function() {
deferred.resolve(origPromise);
}, delay);
return defered.promise;
};
});
[编辑]:
要为所有请求设置延迟,您可以将此解决方案应用于响应拦截器