在node.js函数运行

时间:2015-05-20 18:49:57

标签: javascript node.js appjs

我想在我的Appjs程序中创建一个简单的读取文件函数。所有发生的事情是Appjs在我的app.js文件中调用一个函数并在node.js中运行它。然后,此函数通过window.returnData = data;

将值返回到我的Appjs程序

这是有效的,但是我无法按照我想要的顺序工作。 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功能,它会发出警报数据正确。

我认为儿童功能应该先完成是不正确的?有没有解决的办法?我不想创建一个循环,不断检查要更改的变量。

提前致谢。

0 个答案:

没有答案