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'指示调用顺序。
如果您仍然不确定,请告诉我。
我有一个附有 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'指示调用顺序。
如果您仍然不确定,请告诉我。