我想在我的Appjs程序中创建一个简单的读取文件函数。所有发生的事情是Appjs在我的app.js
文件中调用一个函数并在node.js中运行它。然后,此函数通过window.returnData = data;
这是有效的,但是我无法按照我想要的顺序工作。 node.js函数似乎在Appjs函数之后运行,尽管它在其中。
以下是我的Appjs index.html
文件中启动整个过程的函数。
var returnData;
function r(path,d) {
window.readFromFile(path,d); //call to the function readFromFile below
alert(returnData);
}
来自上面调用的app.js文件中的 readFromFile()
函数
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
功能,它会发出警报数据正确。
我认为儿童功能应该先完成是不正确的?有没有解决的办法?我不想创建一个循环,不断检查要更改的变量。
提前致谢。