2016-04-23 10 views
1
 Promise.all(function(){ 
    for(var numb in req.body) 
    { 

    console.log(numb+":"+req.body[numb]); 

    checkValue(numb,function(err,result){ 
     if(result) 
      { 
     console.log(result); 
     send[result]="true"; 
     console.log(send); 

      } 
     if(err) 
      {console.log(err+"not");} 
    }); 
    } 
}).then(res.json(send)); 

私は最初にforループを実行してからデータを送り返したいと思います。私はpromise.allを使用しようとしていますが、正しいかどうかわかりません。誰かが私を助けることができますか?node.jsのループで約束する

+0

適切にそれを読みやすくするために/インデントコードをフォーマットしてください。 – jfriend00

+0

Promiseの配列を 'Promise.all()'に渡します。 'Promise.all()'に関数を渡すことはありません。表示するコードには非同期操作もありません。したがって、約束を使用する理由はありません。通常のループをコーディングすることができます。 – jfriend00

答えて

9

あなたが約束を使用している場合は、次の手順を実行してthis

あなたはこの問題を解決することができますチェックアウト:

var promises = []; 

for(var numb in req.body) 
{ 
    promises.push(checkValue(numb)); 
} 

Promise.all(promises)  
.then(function(data){ /* do stuff when success */ }) 
.catch(function(err){ /* error handling */ }); 

function checkValue(numb){ 
return new Promise(function(resolve, reject){ 
    // place here your logic 
    // return resolve([result object]) in case of success 
    // return reject([error object]) in case of error 
});