JavaScript返回数据
为了从JavaScript返回数据,javascript,cordova,Javascript,Cordova,为了从PhoneGap中的文件中读取数据,我创建了一个简单的类,在这个类中我可以访问文件,如下面的代码所示 var ReaderForFile = { dataFromFile:null, start_ReadFile:function() { window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, ReaderForFile.got_FileSystemReader, ReaderForFile.f
PhoneGap
中的文件中读取数据,我创建了一个简单的类,在这个类中我可以访问文件,如下面的代码所示
var ReaderForFile =
{
dataFromFile:null,
start_ReadFile:function()
{
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, ReaderForFile.got_FileSystemReader, ReaderForFile.fail);
},
got_FileSystemReader:function(fileSystem)
{
fileSystem.root.getFile("SHA_ErrorLog.txt", null, ReaderForFile.got_FileEntry, ReaderForFile.fail);
},
got_FileEntry:function(fileEntry)
{
fileEntry.file(ReaderForFile.got_File, ReaderForFile.fail);
},
got_File:function(file)
{
ReaderForFile.read_AsText(file);
},
read_AsText:function(file)
{
var reader = new FileReader();
reader.onloadend = function(evt) {
ReaderForFile.dataFromFile = evt.target.result+"}]}";
};
reader.readAsText(file);
},
fail:function()
{
console.log(evt.target.error.code);
},
getData:function()
{
ReaderForFile.start_ReadFile();
return ReaderForFile.dataFromFile;
}
}
然后我这样调用函数
var data = ReaderForFile.getData();
但是在这种情况下,数据总是返回
null
,因为它在所有函数执行之前返回。我在这里应该做什么,当read\u AsText
完全执行并且数据存储在dataFromFile变量中时,它返回。这里最好的方法是对相同的函数使用回调函数。因为您的函数是异步执行的因此,每次都将写入null