2017-02-27 7 views
0

を使用してforループの中にGETメソッドを呼び出しますデータベースから値を取得するGETメソッド。私のコードは、これまでのようになります。NodeJSは、私はNodeJSとExpressを使用し、例えば、文字列の配列を、反復処理していたコールバック

function processFormula(formula) { 
    console.log(formula) 
    var arr = formula.split(" "); 
    for (var i = 0; i < arr.length; i++) { 
     if (arr[i].match(/[a-z]/i)) { 

     /* fetch the value and store it in arr[i] */ 

     } 
    return arr.toString(); 
    } 

私の問題は、値を取得するために消灯方法は多くをトリミング

undefined 

その結果、処理スレッドよりも実行に時間がかかるということです。私はこの状況を繰り返し処理するためにコールバックを置くべき場所を正確に理解するのに苦労していますか?

ご協力いただきありがとうございます。

+0

ここで最初の質問をご覧ください:http://stackoverflow.com/questions/tagged/javascript?sort=frequentループについては、次のいずれかを見てください:http://stackoverflow.com/search?q=%5Bjavascript%5D+asynchronous+loop –

+0

あなたの助けにフェリックスに感謝します。 –

答えて

1

これは調整が難しいです。約束を使用するaxiosのようなHTTPリクエストライブラリを試してみることができます。次に、Promise.allを使用してすべての要求を調整できます。

0

あなたがのために内部の場合は別のものを追加して、最後の要素で、あなたまで戻すことができます。

for(var i = 0; i < arr.length; i++){ 
    if (arr[i].match(/[a-z]/i)) { 

    /* fetch the value and store it in arr[i] */ 

    } 
    if(i == arr.length-1){ 
      return arr.toString(); 
    } 
} 

そして提案、各ループは、あなたがの長さを計算することになるので、ループのarray.length外を使用してみてくださいアレイは条件が成立したかどうかをチェックし、毎回配列を調べます。 (私は私の答えでそれを変えなかった)。ループの前でやり直してください。var size = array.length

関連する問題