Jquery获取文本文件并将值返回给其他函数

时间:2011-10-04 12:53:26

标签: javascript jquery

任何人都可以帮助我

中的错误
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;
}

值返回,我在代码中做了什么错误?

2 个答案:

答案 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
});