我遇到了使用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
因为我需要立即而不是延迟后得到响应