我正在尝试在我的 Appjs 程序中创建一个简单的读取文件功能。正在发生的一切是 Appjs 在我的app.js
文件中调用一个函数并在 node.js 中运行它。然后,此函数通过以下方式向我的 Appjs 程序返回一个值window.returnData = data;
这行得通,但是我无法让它按照我想要的顺序工作。node.js 函数似乎在 Appjs 函数之后运行,尽管它在其中。
这是我的 Appjsindex.html
文件中启动整个过程的函数。
var returnData;
function r(path,d) {
window.readFromFile(path,d); //call to the function readFromFile below
alert(returnData);
}
readFromFile()
从上面调用的 app.js 文件中的函数
window.readFromFile = function(path,d) {
var fs = require('fs');
if (d == 1) {
path = __dirname + path;
}
fs.readFile(path, {encoding: 'utf-8'}, function(err,data){
if (err){
console.log(err);
} else {
console.log('File read');
window.returnData = data;
}
});
}
这是我的问题。此函数的第一次调用将提醒文本undefined
。但是,在警报功能之后,我知道window.returnData = data;
上面的行正在工作,因为如果我创建一个按钮来再次提醒变量returnData
或再次运行该readFromFile
函数,它会正确提醒数据。
我认为应该首先完成子功能是否不正确?有没有解决的办法?我不想创建一个循环来不断检查变量的变化。
提前致谢。