是否可以有多个.then函数?

时间:2018-05-25 20:38:43

标签: javascript angularjs

我在这里处理错误网站运行正常但是当我添加额外的.then时,它就会中断。我只是想知道这是否编码正确,如果没有,你可以帮助我吗?



    // list 1
    $scope.get_this_list = function () {
        return SharedFunctions.issuePOSTOBJCmd(url + 'get_list_1' , {})
            .then(function (response) {
                $scope.list_one_options = response.data;
            }, function (error) {
                $scope.display_error = true;
                $scope.display_message = 'HTTP ERROR occured. Please check with Web/Dev Admin ' + error;
            });

    };

    // list 2
    $scope.get_that_list = function () {
        return SharedFunctions.issuePOSTOBJCmd(url + 'get_list_2' , {})
            .then(function (response) {
                $scope.list_two_options = response.data;
            }, function (error) {
                $scope.display_error = true;
                $scope.display_message = 'HTTP ERROR occured. Please check with Web/Dev Admin ' + error;
            });

    };
    
        $scope.get_list()
          .then($scope.get_this_list()),
           .then($scope.get_that_list());

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
&#13;
&#13;
&#13;

这些是填充下拉框。

2 个答案:

答案 0 :(得分:3)

尝试删除&#34; thens&#34;之间的逗号,如:

$scope.get_list()
      .then($scope.get_this_list())
       .then($scope.get_that_list());

答案 1 :(得分:2)

then()旨在被链接。要使用此功能,您应使用语法then(func1).then(func2).then(func3)

您可以添加任意数量的功能。使用catch()来处理错误(在链的任何位置)和finaly()来执行应该在链的任何分辨率下运行的代码。