我想延迟对以下whenGET的响应:
$httpBackend.whenGET(/^foobar/).respond(function () {
return [200,{}];
});但是,使用$timeout似乎不可能同步完成这个任务,所以我不确定如何处理这个问题?
发布于 2014-09-28 16:42:14
如果只想延迟特定的响应,则可能会延迟将响应分配给范围属性。
如果将调用包装在自定义服务方法中,则可以将响应封装到承诺中,并在需要时解决它:
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;
};
});编辑
若要将延迟设置为所有请求,可以将此解决方案应用于响应拦截器。
https://stackoverflow.com/questions/26083822
复制相似问题