Gar*_*eth 9 javascript jquery return-value getjson
function lookupRemote(searchTerm)
{
var defaultReturnValue = 1010;
var returnValue = defaultReturnValue;
$.getJSON(remote, function(data)
{
if (data != null)
{
$.each(data.items, function(i, item)
{
returnValue = item.libraryOfCongressNumber;
});
}
});
return returnValue;
}
Run Code Online (Sandbox Code Playgroud)
为什么returnValuefrom this函数总是等于在函数开头设置的默认值,而从不等于从JSON查找中检索的值?
Nic*_*ver 13
发生这种情况是因为回调函数(function(data) {...})在响应回来后运行...因为它是异步函数.而是在设置后使用该值,如下所示:
function lookupRemote(searchTerm)
{
var defaultReturnValue = 1010;
var returnValue = defaultReturnValue;
$.getJSON(remote, function(data) {
if (data != null) {
$.each(data.items, function(i, item) {
returnValue = item.libraryOfCongressNumber;
});
}
OtherFunctionThatUsesTheValue(returnValue);
});
}
Run Code Online (Sandbox Code Playgroud)
这就是所有异步行为的方式,一旦你拥有它就会启动任何需要的值...这就是服务器响应数据的时候.
如果您不想使用异步功能,请更好地使用以下内容:
function getValue(){
var value= $.ajax({
url: 'http://www.abc.com',
async: false
}).responseText;
return value;
}
Run Code Online (Sandbox Code Playgroud)
此函数等待,直到从服务器返回值.
| 归档时间: |
|
| 查看次数: |
33205 次 |
| 最近记录: |