小编典典

如何从$ .getJSON函数返回变量

ajax

我想回到StudentId别处外使用的 范围$.getJSON()

j.getJSON(url, data, function(result)
{
    var studentId = result.Something;
});

//use studentId here

我猜想这是与范围有关,但它似乎不相同的方式工作 C#


阅读 234

收藏
2020-07-26

共1个答案

小编典典

是的,我之前的答案不起作用,因为我没有对您的代码给予任何关注。:)

问题在于匿名函数是一个回调函数-
即getJSON是一个异步操作,它将在某个不确定的时间点返回,因此即使变量的范围不在该匿名函数(即闭包)之外,它也会没有您认为应该的价值:

var studentId = null;
j.getJSON(url, data, function(result)
{
    studentId = result.Something;
});

// studentId is still null right here, because this line 
// executes before the line that sets its value to result.Something

要使用由getJSON调用设置的studentId值执行的任何代码都需要 该回调函数内或 回调执行 发生。

2020-07-26