2016-06-19 29 views
0

私はExpressフレームワークを使用しています。ノードjsで非同期関数を同期的に実行する方法

私が直面している問題は、var期間を作成し、 '/'のリクエストが受け取られると、指定されたビデオの合計期間を見つけてその変数に保存するだけですが、最後に変数ではなく変数の値は、それが未定義のショーでは何もしてコンソールにを示さないことを示すの...

誰が

たくさん

感謝...ではなく、非同期の同期このコードをTUNために私を助けてくださいしてくださいすることができます

This is my code

あなたが execのコールバック内

console.log(duration); 
res.send(duration); 

を配置する必要があり非同期コードを処理するために、0

答えて

1

修正コード:

var duration; 
app.get('/', function(req, res){ 
    exec('ffprobe -1 ***', function(){ 
     if(stdout){ 
      duration = stdout; 
      console.log(duration); 
      res.send(duration); 
     } 
    }); 
}); 
+1

これは、問題を解決しますが、それはそれは、「コードを同期させる」しないことを言及する価値があります。それは以前の不正な非同期処理を修正します。 – Robbie

+0

@Robbie - ありがとう!コードはまだ非同期ですが、今は正しく処理されています。 (答えを編集した) –

関連する問題