2013-11-28 2 views
0

для чтения данных из файла в PhoneGap я сделать s простой класс, в котором я получить доступ к файлу, как ниже кодJavaScript данные возвращаемые

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 переменная

ответ

0

Лучше всего использовать функции callBack для того же самого. Поскольку ваша функция выполняется асинхронно, она каждый раз будет записывать значение null.

Tutorial for callback functions in JavaScript

Смежные вопросы