首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >依次的ngresource调用

依次的ngresource调用
EN

Stack Overflow用户
提问于 2016-07-25 13:29:01
回答 1查看 36关注 0票数 0

我有一个控制器对两个REST服务进行两个$resource调用,其中第一个服务的结果被第二个服务用作输入。

在这里,代码:

代码语言:javascript
运行
复制
if (requestLock == false) {
    $scope.T_01_04_sharedData.tempRequestForT_01_04 = insertNewRequest("aggr_1", $rootScope.globals.currentUser.username, "", "temp", "2016-07-30 00:00:00");
    requestLock = true;
}

if (action == 'add') {
    updateSelectedForRequest(prosumer, 'selected', $rootScope.globals.currentUser.username, $scope.T_01_04_sharedData.tempRequestForT_01_04);
} else {
    updateSelectedForRequest(prosumer, 'non-selected', $rootScope.globals.currentUser.username, $scope.T_01_04_sharedData.tempRequestForT_01_04);
}

函数updateSelectedForRequest

代码语言:javascript
运行
复制
function updateSelectedForRequest(username, status, businessUser, request) {
            WidgetService.T_01_04_updateSelectedForRequest.query({
                businessUser_id: businessUser,
                request_id: request,
                username: username,
                status: status
            }, function (result) {
                // response handler

            });
        }

函数insertNewRequest

代码语言:javascript
运行
复制
function insertNewRequest(bu_id_target, requester, description, status, validUntil) {
            return WidgetService.T_01_04_insertNewRequest.query({
                bu_id_target: bu_id_target, 
                requester: requester,
                description: description,
                status: status,
                validUntil: validUntil

            }, function (result) {

                $scope.T_01_04_sharedData.tempRequestForT_01_04 = result.request_id;
                return result;
            });
        }

错误是第一次调用没有顺序解析,因此第二次调用没有输入。

是否有可能按顺序运行这两个调用,以便等待第二个调用--来自第一个调用的输入?

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2016-07-27 10:16:11

我不熟悉ngresource,但您可以尝试这样的方法。

代码语言:javascript
运行
复制
if (requestLock == false) {
    insertNewRequest("aggr_1", $rootScope.globals.currentUser.username, "", "temp", "2016-07-30 00:00:00")
    .then(function(result){
         $scope.T_01_04_sharedData.tempRequestForT_01_04 = result;

         if (action == 'add') {
              updateSelectedForRequest(prosumer, 'selected', $rootScope.globals.currentUser.username, $scope.T_01_04_sharedData.tempRequestForT_01_04);
         } else {
              updateSelectedForRequest(prosumer, 'non-selected', $rootScope.globals.currentUser.username, $scope.T_01_04_sharedData.tempRequestForT_01_04);
         }
    }, function(error){/* manage error here */});

    requestLock = true;
}

代码语言:javascript
运行
复制
function insertNewRequest(bu_id_target, requester, description, status, validUntil) {
            return new Promise(function(resolve, reject){
                PromiseWidgetService.T_01_04_insertNewRequest.query({
                    bu_id_target: bu_id_target, 
                    requester: requester,
                    description: description,
                    status: status,
                    validUntil: validUntil

                }, function (result) {

                    $scope.T_01_04_sharedData.tempRequestForT_01_04 = result.request_id;
                    resolve(result);
                });
            })
        }

更多关于承诺的信息:Objects/Promise

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38569094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档