-->

AngularJS - 使用ngMockE2E $ httpBackend我怎么能延缓具体的回应?

2019-10-21 01:43发布

我想推迟到以下whenGET响应:

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

然而,它似乎是不可能使用$超时同步做到这一点,所以我不知道如何处理呢?

Answer 1:

如果你想拖延只是一个具体的回应,可能比你延迟效应初探至scope属性的分配。

如果你换你的电话到您的自定义服务方法,可能比你包裹响应为承诺,在需要的时候解决这个问题:

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

});

[编辑]:

要设置延迟到所有请求,你可以申请这个解决方案的响应拦截



文章来源: AngularJS - Using ngMockE2E $httpBackend how can I delay a specific response?