我的javascript没有等待回复电话的问题。我现在已经知道javascript是异步的,所以我想知道如何使这个方法调用等待结果。我无法控制前两个片段,因为它们是由用户上传的。我可以使用jquery或纯javascript。谢谢!
我有这个javascript电话
var value = somemethod("cmi.location");
/ /This is not getting set since it does not wait. alerts 'undefined'
alert(value);
和somemethod看起来像下面的代码,
function somemethod(element){
var result;
result = API1.GetValue(element);
return result;
}
API是一个通过执行以下代码实例化的窗口对象。我可以从这一点开始访问代码片段。
var API1 = new API();
API是javascript中的一个对象,如下所示:
function API(){
};
API.prototype.GetValue=API_GetValue;
function API_GetValue(parameter){
$.ajax({
type:"POST",
async:false,
url:"method.do",
dataType:"xml",
data: {action: 'getValue', parameter: parameter, value: ''},
success:function(data){
//I am getting 0 here
return $(data).find('search').text();
}
});
}
答案 0 :(得分:3)
function API_GetValue(parameter){
var newdata;
$.ajax({
type:"POST",
async:false,
url:"method.do",
dataType:"xml",
data: {action: 'getValue', parameter: parameter, value: ''},
success:function(data){
//I am getting 0 here
newdata = $(data).find('search').text();
}
});
return newdata;
}
您也可以这样做:
function API_GetValue(parameter){
var newdata = $.ajax({
type:"POST",
async:false,
url:"method.do",
dataType:"xml",
data: {action: 'getValue', parameter: parameter, value: ''}
}).responseText;
return $(newdata).find('search').text();
}