一个函数中的计算值;将它们传递给另一个函数

时间:2015-11-09 15:49:46

标签: javascript function return return-value

我在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调用返回一个对象,但我也希望能够使用我在包装函数中的Compute Functions中创建的值。这可能吗?我错过了什么在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

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

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

变量TheSumTheDif是局部变量,仅限于每个函数的范围。使用var可以确保这一点。

答案 1 :(得分:0)

您只需将函数的返回值赋值给局部变量,然后就可以在函数中引用该局部变量:

@ContextConfiguration(classes = MainApplication.class, loader = SpringApplicationContextLoader.class)
@IntegrationTest
@WebAppConfiguration
public abstract class AbstractFeature {

    protected RestTemplate restTemplate = new TestRestTemplate();

    @Value("${testing.server}")
    protected String url;

    public URI getURI(String endpoint) {
        return URI.create("http://" + url + endpoint);
    }

}