在按所需顺序执行函数时遇到问题。
$scope.function1 = function(){
var promiseObj= $http.get('Some Url');
/* other logic goes here */
}
$scope.function2 = function(){
var promiseObj= $http.get('Some Url');
/* other logic goes here */
}
$scope.function3 = function(){
var promiseObj= $http.get('Some Url');
/* other logic goes here */
}
现在,想要按以下顺序执行函数,
1) 函数1
2) 函数2
3) 函数3
我希望 function2
和 function3
仅在 function1
完成后执行
它的执行。
我尝试过以下方法,
$.when(
$scope.function1()
).then(
$scope.function2(),
$scope.function3()
)
尽管如此,还是没有成功。首先执行 function2,然后执行 function1
最佳答案
$.when( $scope.function1() ).then( $scope.function2(), $scope.function3() )
您将执行结果传递给回调,同时希望将 then
内部的整个代码作为回调传递。正确的版本是:
$.when(
$scope.function1()
).then(function () {
$scope.function2(),
$scope.function3()
})
$.when
看起来还是很奇怪。为什么要将 Angular 与其他东西混合在一起?只需使用:
$scope.function1().then(function () {
$scope.function2(),
$scope.function3()
})
确保function1
返回promice。
关于javascript - Angular js 有没有办法对函数的执行顺序进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586691/