0

我正在尝试在我的 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函数,它会正确提醒数据。

我认为应该首先完成子功能是否不正确?有没有解决的办法?我不想创建一个循环来不断检查变量的变化。

提前致谢。

4

0 回答 0