【问题标题】:using $timeout to wait before trying a DB hit again在再次尝试数据库命中之前使用 $timeout 等待
【发布时间】:2014-08-25 08:11:08
【问题描述】:

我正在向我的数据库添加内容,但数据库可能正在等待文件完成上传。所以,我的解决方案是尝试添加,如果文件不存在,我的服务器返回 404。如果我收到 404 错误,我等待 1 秒再试一次。

这是我的想法:

$scope.add() = function() {
    db.add(uuid).then(
        function(response) {
            // Add success!
        },
        function(error) {
            if (error.status === 404) {
                $timeout($scope.add, 1000);
            }
        }
};

这是正确的做法吗?感觉不对,但我不确定。

【问题讨论】:

    标签: angularjs timeout


    【解决方案1】:

    这实际上是一种合法的方法,只是在超时回调中不需要括号。使用:$timeout($scope.add, 1000);
    我还会添加一些重试计数器(例如尝试 3 次并退出),这样您就不会陷入无限循环。

    【讨论】:

      【解决方案2】:

      这绝对不是正确的方法^^您应该在上传文件后使用回调。

      您上传文件并在回调中调用您的 addDb 函数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多