此功能一般用于ajax calss:
function f_AjaxFunction(_param) {
var objectWillReturn;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: 'WS/wsGenral.asmx/f_QueryAndGetResultAsJson',
data: "{_sParam:'" + _param + "'}",
dataType: "json",
success: function(data) {
var txt = "";
try {
objectWillReturn = data;
}
catch (err) {
alert(err.description);
}
}
});
return objectWillReturn ;
}
此函数正在调用上面的其他函数:
function f_HavaDurumu(_paramm) {
var obj;
obj = f_AjaxFunction(_paramm);
$("#spanShow").html(obj.d);
}
答案 0 :(得分:3)
您必须使用回调,因为调用是异步的:
function f_AjaxFunction(_param, callback) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: 'WS/wsGenral.asmx/f_QueryAndGetResultAsJson',
data: "{_sParam:'" + _param + "'}",
dataType: "json",
success: function(data) {
var txt = "";
try {
if($.isFunction( callback(data) )){
callback(data);
}
}
catch (err) {
alert(err.description);
}
}
});
}
function f_HavaDurumu(_paramm) {
f_AjaxFunction(_paramm, function(data){
$("#spanShow").html(data.d);
});
}
我无法想到你的代码会在Try块中导致错误的情况,但我把它留在了,因为你在那里开始使用它。
<强>更新强>
进一步说明:
function get_ajax(){
var ran = false;
$.ajax({ 'url':'/some/url', success: function(data){
ran = true;
});
return ran;
}
alert(get_ajax()); // alerts "false"
它按此顺序运行:
run
设为false
run
run
设置为true 但是,如果使用回调,则可以按顺序保存,以便它们执行如下:
答案 1 :(得分:0)
正如Doug所说,您将需要使用异步回调。 f_AjaxFunction在数据可用之前返回。
另一种选择是Javascript Strands。