角度确保操作至少需要N ms才能完成

时间:2014-12-09 11:56:34

标签: angularjs

我有一个保存功能,它的工作速度非常快,几乎看起来令人难以置信,我想人为地增加所需的时间,如果太快完成它就会感觉到#34;感觉"更好。

目前我有一个用于保存计划的服务,如果它太快,我如何检测并等待N ms?

addScheduleServices.factory('addScheduleAPIservice', function ($http) {
    var addScheduleAPI = {};

    // this is often too quick
    addScheduleAPI.save = function (schedule) {
        return $http({
            method: 'POST',
            data: schedule,
            url: '/settings/addschedule'
        });
    }

    return addScheduleAPI;
});

// Use within controller
addScheduleAPIservice.save($scope.schedule)
    .success(function () {
        //success state
    })
    .error(function () {
        // error state
    });

1 个答案:

答案 0 :(得分:2)

你可以引入$ q和$ timeout。 $ q允许您等待多个承诺解决。使用此功能,您可以实现最短持续时间:

addScheduleServices.factory('addScheduleAPIservice', function ($http, $q, $timeout) {
    var addScheduleAPI = {};

    // this is often too quick
    addScheduleAPI.save = function (schedule) {
        var addSchedule = $http({
            method: 'POST',
            data: schedule,
            url: '/settings/addschedule'
        });
        var wait = $timeout(function() {
        }, 3000, false);
        return $q.all([addSchedule, wait]).then(function(p1) {
             // success
             return p1;
        });
     }

    return addScheduleAPI;
});