1

簡単な答えがあるはずですが、今日はグーグルに夢中です。コード内の質問。

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 = 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}

たぶん私も非同期でこのようなことをすることができたでしょう-私は知りません。しかし、上記は私が望んでいたように機能します。

于 2012-08-18T07:48:10.117 に答える