javascript/angularjs - 函数调用顺序

javascript/angularjs - order of function calls

我有一个附有 4 个功能的按钮:

        <button type="button" data-dismiss="modal" data-toggle= "modal" href="#booking" class="btn btn-success" ng-click="createResource(); cancelFirstModal(); confirmNumberOfBooking(); showSecondModal(); " >Create Bookings</button>

ng-click 之后,首先调用 createResource(),然后调用 confirmNumberOfBookings(),但我在 safari 中的控制台输出另有说明:

    $scope.createResource = function () {
        console.log('create is called');
        $http.post('/api/v1/resource', $scope.newResource).then(function (response) {
            console.log('post is called');
        });
    };

    $scope.confirmNumberOfBooking = function (){
        //$scope.numberOfBookings = 3;
        console.log('confirm is called');
        $scope.newResource.booking = [
            {
                startDateTime: "datetime",
                endDateTime: "datetime"
            }
        ];

        for(var i = 0; i < $scope.newResource.numberOfBookings; i++){
            $scope.newResource.booking.push({startDateTime: "datetime",endDateTime: "datetime"});
        }
    };

我的问题是,为什么最后调用 $http.post?技术上声明在confirmNumberOfBookings().

之前

调用顺序与控制台中报告或输出的顺序不同。

$http.post 在 console.log('create is called').

之后调用

$http.post returns 将在请求成功或失败时解析为响应对象的 Promise,因此只有当 promise 被解析且未被解析时,您才会得到输出 'post is called'指示调用顺序。

如果您仍然不确定,请告诉我。