完成一个功能后执行另一个功能

时间:2013-12-17 21:44:20

标签: javascript angularjs

这可能是一个愚蠢的问题,到现在为止我正在使用类似的东西。

$scope.selectEvent = function ($index, event, callback) {
    // Do stuff

    setTimeout(function() {
        callback($scope, $http);
    }, 0);
};

问题是我想在完成selectEvent函数之后才调用回调。 selectEvent函数向DOM添加内容并将一些变量添加到作用域中,我的回调使用作用域中的变量在DOM上绘制内容。显然,如果未更新DOM且未设置范围变量,则没有setTimeout的回调会出错。

更新

假设这是在回调上调用的函数(此函数也回调另一个函数)。

function my_callback($scope, $http, callback) {
    // Don't make an additional post request if it is already there
    if ($scope.dataForCallback === null) {
        $http.post("get_data",
            {vars: $scope.data.vars}).
            success(function (data) {
                $scope.dataForCallback = data;

                setTimeout(function() {
                    callback($scope);
                }, 0);

            });
    } else {
        setTimeout(function() {
            callback($scope);
        }, 0);
    }
}

0 个答案:

没有答案