AngularJS中的同步SQL查询

时间:2016-10-18 17:44:05

标签: sql angularjs synchronous

我有一个1.x AngularJS应用程序,需要同步执行2个SQL查询(一个接一个)。第一个对表进行更新,第二个对同一个表进行选择以获取更新的值。我遇到的问题是查询是异步执行的,偶尔会在更新完成之前执行select,然后我会回复"之前"数据而不是"之后"数据。我延迟了500毫秒,这对我来说很好,但是连接速度较慢的离岸人员间歇性地遇到问题。我的代码如下(简化以表达我的观点)。有关如何让第二个查询等到第一个查询完成的任何想法?

$scope.saveUser = function(origuid, uid, name) {
    $http.get('/ccrdb/updateAdmin?origuid=' + origuid + '&uid=' + uid + '&name=' + name);
    setTimeout(function() {
        $http.get('/ccrdb/getAdmins').then(function(response) {
            $scope.users = response.data.detail;
        });
        return true;
    }, 500);
};

1 个答案:

答案 0 :(得分:4)

$http返回在请求完成时解析的promise,所以:

$scope.saveUser = function(origuid, uid, name) {
    $http.get('/ccrdb/updateAdmin?origuid=' + origuid + '&uid=' + uid + '&name=' + name)
    .then(function() {
        return $http.get('/ccrdb/getAdmins');
    })
    .then(function(response) {
        $scope.users = response.data.detail;
    });
};