Javascript 有没有办法将信息传递给async.js并行调用,这样我就不会';你不必使用全局变量吗?

Javascript 有没有办法将信息传递给async.js并行调用,这样我就不会';你不必使用全局变量吗?,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,有没有一种方法可以将信息传递给async.js并行调用,这样我就不必使用全局变量 async.parallel([ function(callback){ setTimeout(function(){ callback(null, 'one'); }, 200); }, function(callback){ setTimeout(function(){ callback(null, 'two');

有没有一种方法可以将信息传递给async.js并行调用,这样我就不必使用全局变量

async.parallel([
  function(callback){
      setTimeout(function(){
          callback(null, 'one');
      }, 200);
  },
    function(callback){
      setTimeout(function(){
          callback(null, 'two');
      }, 100);
  },
],
// optional callback
function(err, results){
  console.log(info)
    // the results array will equal ['one','two'] even though
  // the second function had a shorter timeout.
});

我想让最后的回调知道“info”的值。谢谢你的帮助

为了避免引入全局变量,您可以将其放置在一个外壳中:-

(function() {
    var info = "Some info";

    async.parallel([
        function(callback) {
            setTimeout(function() {
                callback(null, "one");
            }, 200);
        }, 
        function(callback) {
            setTimeout(function() {
                callback(null, "two");
            }, 100);
        }
    ], 
    function(error, result) {
        console.log(info);
    });

}) ();
这样,最终回调可以访问它,但在包含该代码的匿名自执行函数的作用域之外,它将不可见

编辑在coffeescript中制作附件:-

(() ->
  # my code
)()

为避免引入全局变量,您可以将其放置在机柜中:-

(function() {
    var info = "Some info";

    async.parallel([
        function(callback) {
            setTimeout(function() {
                callback(null, "one");
            }, 200);
        }, 
        function(callback) {
            setTimeout(function() {
                callback(null, "two");
            }, 100);
        }
    ], 
    function(error, result) {
        console.log(info);
    });

}) ();
这样,最终回调可以访问它,但在包含该代码的匿名自执行函数的作用域之外,它将不可见

编辑在coffeescript中制作附件:-

(() ->
  # my code
)()
另一种方法是:

(function(protectedVariable1,protectedVariable2) {
    //do something with protected variables
})(variable1,variable2);
另一种方法是:

(function(protectedVariable1,protectedVariable2) {
    //do something with protected variables
})(variable1,variable2);

什么是
info
它的
范围是什么
和上下文您可以提供一些关于您试图执行的、局部变量无法解决的操作的详细信息吗?最终回调只需要两个参数。我不知道如何为parallel或最终回调提供更多信息。什么是
info
它的
scope
和context您可以提供一些关于您尝试执行的局部变量无法解决的操作的详细信息吗?最终回调只需要两个参数。我不知道如何向parallel或最终回调提供更多信息。我想我可能在CoffeeScript范围界定方面遇到了问题。为了简单起见,我粘贴了一个JavaScript示例。我想我可能在CoffeeScript范围界定方面遇到了问题。为了简单起见,我粘贴了一个JavaScript示例。