正在用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'

这就产生了问题,因为我无法return文件的内容,因为由于异步get函数,它还没有加载。那么,是否有任何方法可以告诉函数等待$.get()返回文件的内容。

使用async await,我们可以使异步在同步模式下工作。

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()

最新更新