我想了解REST服务发送回promise对象所花费的时间。如果REST服务花费的时间超过了 x 秒,我需要向用户显示一个微调器,一旦获得了promise对象,就应该继续正常流程。
有什么想法吗?
由于
答案 0 :(得分:3)
记录请求的时间似乎是不必要的。
为什么不总是设置超时,在x秒后触发微调器。 在promise的成功回调中,你可以破坏超时对象,防止它在x秒之前触发微调器。然后删除微调器(如果存在)。
var duration = 1000 * 1; //1 sec
var timeout = setTimeout(releaseTheSpinner, duration);
var releaseTheSpinner = function() {
//Make spinner
}
Something.update(data).
success(function {
clearTimeout(timeout);
//kill spinner
})
答案 1 :(得分:1)
使用setTimeout
就足够了。例如:
$scope.useHttp = function() {
$http.get('path/to/stuff')
.success(function(data) {
hideSpinner();
//do stuff with data
});
setTimeout(showSpinner,1000); //will show the spinner after a second (1000 milliseconds).
};
答案 2 :(得分:-1)
查看ngProgress指令或angular loading bar directive,它会在页面顶部显示进度。这创建了一种显示进度的通用统一方法。即使服务响应很快(即您不想显示进度),条形图也会快速移动。这不是您问题的直接答案,而是建议的替代方案,可以增加时间安排并显示微调器。