通过HTTP请求返回文本文件作为数组javascript

Return text file through HTTP request as an array javascript

本文关键字:数组 javascript 文件 文本 HTTP 请求 返回 通过      更新时间:2023-09-26

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

所以我做了我的研究,想出了一个似乎足够简单的函数。然而,当我alert(theArray);它返回undefined。我做错了什么?

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;
}

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

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