首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS --如何使用ngMockE2E $httpBackend来延迟特定的响应?

AngularJS --如何使用ngMockE2E $httpBackend来延迟特定的响应?
EN

Stack Overflow用户
提问于 2014-09-28 10:10:59
回答 1查看 1.5K关注 0票数 1

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

代码语言:javascript
复制
$httpBackend.whenGET(/^foobar/).respond(function () {
  return [200,{}];
});

但是,使用$timeout似乎不可能同步完成这个任务,所以我不确定如何处理这个问题?

EN

回答 1

Stack Overflow用户

发布于 2014-09-28 16:42:14

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

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

JS:

代码语言:javascript
复制
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;
 };

});

编辑

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26083822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档