【问题标题】:Return text file through HTTP request as an array javascript通过 HTTP 请求将文本文件作为数组 javascript 返回
【发布时间】:2013-03-03 06:23:52
【问题描述】:

我在开发网站时遇到了障碍。我需要它来拉取同一目录中的文本文件并将每一行作为数组返回。

所以我进行了研究,并想出了一个看起来很简单的函数。但是,当我提醒(theArray);它返回未定义。我做错了什么?

function pullText(x)
{
  var fullText = [];
  fileReturn=new XMLHttpRequest();
  fileReturn.onreadystatechange=function()
  {
    if (fileReturn.readyState==4 && fileReturn.status==200)
    {
      entireTextFile = fileReturn.responseText;
      // alert(entireTextFile); works as expected here
      lines = fileReturn.responseText.split("\n");
      // alert(lines); works as expected here
      fullText = lines;
    }
  }
  // alert(fullText); does not work.
  fileReturn.open("GET",x,true);
  fileReturn.send();
  return fullText;
}

【问题讨论】:

    标签: javascript arrays xmlhttprequest return


    【解决方案1】:

    它不会那样工作,因为 AJAX 是 A 同步的。您应该传递一个回调处理程序并在文档准备好后调用它。

    function pullText(x, callback)
    {
    //      var fullText = []; not necessary
      fileReturn=new XMLHttpRequest();
      fileReturn.onreadystatechange=function()
      {
        if (fileReturn.readyState==4 && fileReturn.status==200)
        {
          entireTextFile = fileReturn.responseText;
          // alert(entireTextFile); works as expected here
          lines = fileReturn.responseText.split("\n");
          // alert(lines); works as expected here
          callback(lines);
        }
      }
      // alert(fullText); does not work.
      fileReturn.open("GET",x,true);
      fileReturn.send();
    }
    
    pullText(whatever, function(lines) {
        // use lines here
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-06
      相关资源
      最近更新 更多