任何人都可以帮助我
中的错误function separateerror()
{
var jqxhr = $.get("/errormsg.txt", function(data) {
line = data;
array = line.split(',');
getmsg=array[0];
})
return getmsg;
}
我需要将“getmsg”返回到另一个函数,但它不起作用,就像我在中间添加警报一样
function separateerror()
{
var jqxhr = $.get("/errormsg.txt", function(data) {
line = data;
array = line.split(',');
getmsg=array[0];
})
//alert(getmsg)
return getmsg;
}
值返回,我在代码中做了什么错误?
答案 0 :(得分:3)
$.get
是异步调用,如果您在其间添加警报,则会为异步调用留出时间,然后在separateerror
之前设置您的值功能完成。否则,separateerror
函数会在$.get
调用完成之前返回,然后您的getmsg
可能仍为空值。
在处理异步调用时,你不应该使用这个调用函数的简单模型并期望它们的值作为回报,你应该使用callback functions以正确的方式完成。
编辑:
此外,您应该处理$.get
错误回调,以防万一发生,并且您无法加载txt
文件。
function separateerror()
{
var jqxhr = $.get("/errormsg.txt", function(data) {
line = data;
array = line.split(',');
getmsg=array[0];
dosomething(getmsg);
})
.error(function() { alert("error"); });
}
function dosomething(msg) { ... }
答案 1 :(得分:1)
将其插入脚本的顶部。那/应该/修复它。
$.ajaxSetup({
async: false
});