0
我构建的功能将自动扫描服务器启动或文件夹更改时的文件夹。该脚本将为已安装的小部件组装一个小部件文件夹,然后连接并构建一个新的部分文件以包含在前端应用程序中。Node.js中的未定义变量环状异步功能
脚本是这样的:这种方法被称为
concat.readMethodContents = function(concat) {
var widget;
for (widget in concat.widgets) {
var method;
for (method in concat.widgets[widget]) {
if (concat.widgets[widget][method].ready) {
concat.widgets[widget][method].ready = false;
fs.readFile('./lib/widgets/' + widget + '/methods/' + concat.widgets[widget][method].handle, 'utf8', function(err, data) {
if (err) {
console.log(err);
} else {
concat.widgets[widget][method].contents = data;
concat.writeJsPartialFile(concat);
}
});
}
}
}
}
之前,CONCAT对象的样子:
{
"widgets": {
"hello_world": [{
"handle": "method1.js",
"ready": true
}, {
"handle": "method2.js",
"ready": true
}, {
"handle": "method3.js",
"ready": true
}]
}
}
与脚本的问题是,当方法被称为,它被定义为完成,因为循环已完成并且异步函数正在运行回调。
我该如何封装或以其他方式保留通过该操作部分的变量?
欢迎来到承诺的土地。 – 2014-10-31 18:22:30