1

我 100% 肯定肯定有一些简单的答案,但今天我在谷歌上搜索很烂。代码中的问题。

async.waterfall([
  function(callback){
    callback(null, 'some value..');
  }
  ],
  function (err, result) {
    // how do I get result outside of this block?
   }
);

如果我在此块之外设置一个变量并尝试为其分配“结果”,由于 JavaScript 范围的性质,它不会超出该块。

谢谢!

4

1 回答 1

1

谢谢大家的回答。我所做的 - 我已经切换到一个名为“step”的模块。它让我可以执行以下操作:

step = require('step');

var responseData = '{"a":1, "b":2}';

step(
  function someFunction1 () {
    // We do something here and return the result
    return '3';
  },
  function someFunction2 (err, result) {
    // We try to modify the variable that has been defined outside this block
    responseData.c = result;
  }
);

// responseData now returns {"a":1, "b":2, "c":3}

也许我也可以用 async 做这样的事情——我不知道。但上述工作正是我想要的方式。

于 2012-08-18T07:48:10.117 回答