提问者:小点点

用JavaScript从文件加载文本


我已经创建了一个函数来使用URL从文件中获取文本。该函数使用jQuery的$.get()来获取文件。这个函数工作得很好,但这里的问题是$.get()是异步的,所以输出的顺序是不可预测的。我尝试将它更改为同步的,但它完全冻结了页面。我尝试过等待它响应,我想我会花点时间,但它没有起作用。

这是我的密码。

var File = (function () {
  return {
    GetTextFromFile:function(filePath) {
      console.log ("Start")

      $.get({
        url:filePath,
        async:true
      }, function (data) {
        console.log(data)
      });
      
      console.log ("End")
    }
  }
})();

此函数输出

Start
End
'Content_of_the_file'

这就产生了一个问题,因为我无法返回文件的内容,因为它还没有加载,因为异步的get函数。那么,有没有办法告诉函数等待$.get()返回文件内容。


共1个答案

匿名用户

使用Async Await,我们可以使asynchronous在同步模式下工作。

var File = (function () {
  return {
    GetTextFromFile: async function(filePath) {
      console.log ("Start")

      data = await $.get({
        url:filePath,
        async:true
      }, function (data) {
        return data
      });

      console.log(data)

      console.log ("End")
      return data
      
      
    }
  }
})();

await File.GetTextFromFile()