我创建了一个函数,使用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()