在node.js中循环保证

时间:2016-04-23 09:17:07

标签: node.js promise

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但我不确定它是否正确。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:22)

如果您使用的是Promise,请查看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
});