1

我想延迟对以下 whenGET 的响应:

$httpBackend.whenGET(/^foobar/).respond(function () {
  return [200,{}];
});

但是,使用 $timeout 同步执行此操作似乎是不可能的,所以我不确定如何处理?

4

1 回答 1

0

如果您只想延迟特定响应,则可以延迟将响应分配给范围属性。

如果您将调用包装到自定义服务方法中,则可以将响应包装到承诺中并在需要时解决它:

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;
 };

});

[编辑]:

要为所有请求设置延迟,您可以将此解决方案应用于响应拦截器

于 2014-09-28T16:42:14.830 回答