我想在发布请求后返回一些数据,并保存在局部变量中多次使用。我写了下面的代码,每次都会返回未定义的代码。
function getSomeList()
{
var myVariable;
$.post("/Home/getList", { 'input': inputData })
.done(function (data) {
//alert("Data Loaded: " + data); // I can see the data here.
myVariable = data;
});
return myVariable;
}
如果调用此函数,则返回未定义。
alert(getSomeList());
我还尝试了通过写async:false的旧方法,并且知道“ async”的使用已被贬值。
$.ajax({
'async': false,
'type': "POST",
.
.
.
});
请让我知道是否还有其他解决方法。
答案 0 :(得分:4)
使用异步处理范例中的回调。
function getSomeList(inputData) {
return $.post("/Home/getList", { 'input': inputData });
}
getSomeList(missingVariable).then(function(data){
alert(data);
});
如果稍后需要在应用程序中使用该值,则可以存储promise并在以后使用。
someSharedVariable = getSomeList(missingVariable);
... other lines of code ...
... future point in time ...
someSharedVariable.then(function(data){
//use data in your secondary ajax call
});