在下一个示例中,我无法访问函数“fetcher”、“parser”和“saveToDb”中的变量“locals”。
var parser = require('parser.js');
var fetcher = require('fetcher.js');
var saveToDb = require('models/model.js');
var async = require('async');
function task() {
var locals = [] //<-- declared here
async.series([
fetcher, //<-- can not access "locals"
parser, //<-- can not access "locals"
saveToDb //<-- can not access "locals"
],
function (err) {
if (err) return callback(err);
callback(null);
});
}
在下一个示例中,“local”s 是可访问的。我只是从请求的模块中复制了函数声明,并将它们直接粘贴到“async.series”中。
var async = require('async');
function task() {
var locals = [] //<-- declared here
async.series([
function(callback) {// <-- can access "locals"},
function(callback) {// <-- can access "locals"},
function(callback) {// <-- can access "locals"}
],
function (err) {
if (err) return callback(err);
callback(null);
});
}
虽然这可行 - 我确实想保持我的代码模块化。我该如何解决?或者 - 我在这里忘记了 JavaScript 的基础知识?
谢谢。