2
async.waterfall(
  [
  function(cb){
    //do some stuff and then never call cb leaving the async waterfall unfinished
  },...],
  function(err,result){
     //we only get here if the cb is called above and it never is
  }
)

これに害はありますか?設計どおりにメソッドを使用していないことに気付きましたが、私が維持しているコードの束を見つけたばかりです(怒鳴られるためにもう周りにいない誰かによって書かれました)。これが大きな打撃を受けているサーバーで実行されていた場合、問題が発生しますか?

4

1 に答える 1

2

最終関数をコールバックする必要があります。そうしないと、呼び出し元のコードに戻りません。または、コールバックを互いに入れ子にするか、promise を使用します。コールバックを返さないと、イベント ループがブロックされます。

于 2015-10-29T08:51:52.477 に答える