0

次の例では、関数「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);
    });
}

次の例では、「ローカル」にアクセス可能です。要求されたモジュールから関数宣言をコピーし、「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 の基礎についてここで忘れていたことはありますか?

ありがとう。

4

3 に答える 3