node.js - 在 node.js 中循环 promise

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

最佳答案

如果您正在使用 Promises,请查看 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
});

关于node.js - 在 node.js 中循环 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36808876/

相关文章:

javascript - JSON.parse 将空数组附加到字符串参数的末尾

node.js - Elasticsearch 映射在使用 mongo-connector 的 sails 升降机上丢失

javascript - 如何正确编写 promise 返回函数?

javascript - 如何在没有 'fail-fast' 行为的情况下并行等待多个 promise ?

javascript - Node.js 中的循环 Promise

mysql - ER_LOCK_DEADLOCK 没有锁时调用

javascript - 使用 EventEmitter 编写异步函数

javascript - 浏览器中 Node 的 net.connect()?

javascript - 事件循环上下文中微任务和宏任务之间的区别

javascript - 如何停止 Promise 对象的自动解析?