Я использую файл cordova-plugin для записи текстового файла. Я могу получить плагин для заполнения <div>
по модальному всплывающему окну. Этот фрагмент кода работает отлично:Как читать файл в переменную с помощью cordova-plugin-файла
function readFile6(fileName){
var str = '';
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(dir){
dir.getFile(fileName, {create: false}, function(fileEntry){
fileEntry.file(function(file){
var reader = new FileReader();
reader.onloadend = function (evt) {
$(".accordine").html(evt.target.result);
};
reader.readAsText(file);
}, function(error){
alert("Error: " + error.code);
});
}, function(error){
alert("Error: " + error.code);
});
}, function(){
alert("Error");
});
Проблема, мне нужно содержание файла, который будет возвращен в вызывающую функцию, поэтому я могу манипулировать данные, прежде чем он будет отображаться.
Я читаю каждый учебник/образец, который я могу найти, но ни один из примеров не показывает, как что-либо сделать с содержимым, за исключением заполнения div
или показать в console.log()
.
Как получить содержимое текстового файла в качестве возвращаемого значения?
Возможный дубликат [? Как вернуть ответ от асинхронного вызова] (http://stackoverflow.com/questions/14220321/how-do-i- return-the-response-from-a-асинхронный вызов) –
Это не AJAX. Данные, которые мне нужны, находятся прямо там, в evt.target.result Я просто хочу отправить его обратно вызывающей функции. –
Да. Прямо там, в 'evt.target.result', передается функции асинхронного обработчика после возврата вашей основной функции. Проблема (поясняется в связанном вопросе) не имеет ничего общего с *, где * обрабатывается ваш результат, все, что связано с *, когда *. AJAX - это не единственное место, где это возникает в программировании JS, особенно в Кордове, которая агрессивно асинхронна. –