我在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中创建的值。这可能吗?我错过了什么在此先感谢您的帮助。
答案 0 :(得分:1)
也许我不理解这个问题,但为什么不使用这样的返回值:
function Calculations() {
var TheSum, TheDif;
TheSum = ComputeSum();
TheDif = ComputeDif();
alert("The sum is: " + TheSum);
alert("The difference is: " + TheDif);
}
变量TheSum
和TheDif
是局部变量,仅限于每个函数的范围。使用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);
}
}