javascript - Angular js 有没有办法对函数的执行顺序进行排序

标签 javascript jquery angularjs ajax

在按所需顺序执行函数时遇到问题。

$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

我希望 function2function3 仅在 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/

相关文章:

javascript - 动画代码被忽略

具有不同原型(prototype)的 Javascript 对象构造函数混淆

javascript - 是否可以判断一个函数是否处于严格模式?

javascript - Bootstrap : Navbar Item Stuck on Active State After Scrolling To Another Item?

javascript - 检测日期选择后文本框的内容已更改

javascript - 根据其他下拉菜单更改下拉菜单

php - 在 jquery 中向表中添加项目

javascript - 在 Angular 中使用 $http 应用curl POST 请求

javascript - 为什么我的标题 Logo 在我的 Angular 应用程序中出现两次?

angularjs - 是否可以获取我拖过的元素的索引?