残りのコードを処理するために次の関数の戻り値を取得する必要があるため、phonegap を使用した非同期呼び出しで問題が発生しました。
だから私は次の機能を持っています:
function getFileContent(fileName) {
var content = null;
document.addEventListener("deviceready", function() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile("data/" + fileName, null, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
content = evt.target.result;
alert(content);
}
reader.readAsText(file);
});
}, fail);
}, fail);
}, false);
return content;
}
alert(getFileContent(fileName));
しかし、最初に試してみるとnull
、ファイルの内容を含むアラートが表示されます
リターンの前に次の行を追加しようとしましたが、何も実行されません。
while (content == null);
setTimeout
遅延後ではなく、すぐに応答を取得する必要があるため、次のような使用は避けたいと思います