2015-11-09 83 views
1

我使用javascript。我有两个函数都计算一个值。每个函数还会对服务进行ajax调用并获取一些数据。通常,数据只是返回到一个对象中。这两个函数都希望在点击按钮时发生,所以我在另一个函数中同时包含了我的“计算函数”。计算功能设置值。那些设置的值,我如何在我的包装函数中使用它们?这可能是简单的,我只是没有得到一个函数中的计算值;将它们传递给另一个函数

function ComputeSum() { 
$.ajax({ 
    type: 'GET', 
    dataType: 'json', 
    url: constructedURL, 
    success: 
    function(data) { 
    callback(data); 
    stopSpinner(); 
    var TheSum = 4+4; 
    return TheSum; 

}, 
error: function (xhr, status, error) { 
    alert("Error - Something went wrong on the retrieval of already existing Hydraulic Data."); 
    //alert("Unable to communicate with server.Status is: " + status + "The error is: " + error + "The xhr is: " + xhr); 
    stopSpinner(); 
} 
}); 

} 
function ComputeDIf() {$.ajax({ 
     type: 'GET', 
     dataType: 'json', 
     url: constructedURL, 
     success: 
     function(data) { 
     callback(data); 
     stopSpinner(); 
    var TheDif = 10-2; 

    return TheDif; 

    }, 
    error: function (xhr, status, error) { 
     alert("Error - Something went wrong on the retrieval of already existing Hydraulic Data."); 
     //alert("Unable to communicate with server.Status is: " + status + "The error is: " + error + "The xhr is: " + xhr); 
     stopSpinner(); 
    } 
    }); 

} 

所以我有我的两个额外的基本功能。我调用另一个函数,这些函数多数民众赞成附加到按钮点击

function Calculations() { 
    ComputeSum(); 
    ComputeDif(); 
    alert("The sum is: " + TheSum); 
    alert("The difference is: " + TheDif); 
} 

所以我的Ajax调用返回的对象,但我也希望能够用我创造这些价值的计算功能我包装函数里面。这可能吗?我错过了什么。在此先感谢您的帮助。

+0

它被认为是不恰当的在这里发表您的问题的一种方式,然后将其编辑为不同的问题。这对那些为你的第一个问题提供答案的人提供了帮助,但现在你已经编辑了一个完全不同的问题。如果你有新的问题,那么你应该发布一个新的问题,而不是改变旧的问题。 – jfriend00

+0

现在你已经将你的问题变成了一个关于返回从ajax调用中获得的值的问题,它是一个重复的问题。 – jfriend00

回答

1

也许我不理解的问题,但为什么不使用的返回值是这样的:

function Calculations() { 
    var TheSum, TheDif; 
    TheSum = ComputeSum(); 
    TheDif = ComputeDif(); 
    alert("The sum is: " + TheSum); 
    alert("The difference is: " + TheDif); 
} 

变量TheSumTheDif是局部变量和有限的每个功能的范围。使用var保证了这一点。

+0

看,我真是个白痴。这是完美的。但是,我实际上排除了另一部分问题。我会更新我的问题 – user1898629

0

你只需指定从函数的返回值到一个局部变量,然后你可以参考该局部变量的函数中:

function Calculations() { 
    var sum = ComputeSum(); 
    var dif = ComputeDif(); 
    alert("The sum is: " + sum); 
    alert("The difference is: " + dif); 
} 
+0

再次,我只是没有想到。这也是有效的。但是,我实际上排除了另一部分问题。我会更新我的问题 – user1898629

相关问题