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