0

残りのコードを処理するために次の関数の戻り値を取得する必要があるため、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遅延後ではなく、すぐに応答を取得する必要があるため、次のような使用は避けたいと思います

4

1 に答える 1