JavaScript返回数据

JavaScript return data

本文关键字:数据 返回 JavaScript      更新时间:2023-12-26

为了从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_AsText完全执行并且数据存储在dataFromFile变量中时返回

这里最好的方法是使用回调函数。由于您的函数是异步执行的,因此每次都会写入null。

JavaScript 中回调函数教程