此问题已在此处有答案:
How do I return the accumulated results of multiple (parallel) asynchronous function calls in a loop?(5个答案)
How do I return the response from an asynchronous call?(41答案)
5天前关闭。
const result = [];
for(i=0; i < 5; i++){
for(j=0; j<3; j++){
s3Service.getS3Content(key, bucket, (err, res)=>{
if(err){
console.log("error occurred !");
result.push({msg:`error occurred for ${key}`})
}
if(res){
result.push(res);
}
})
}
}
如何在所有外循环/内循环迭代完成后返回result
?
我知道我可以很容易地解决这个问题与promise...then
或async...await
机制。出于某种原因,我想用回调机制来解决它。
有什么简单方法可以使用回调吗?
s3服务。js
const getS3Content = (key, bucketName, cb) => {
S3.getObject({ Bucket: bucketName, Key: key }, (err, result) => {
if (err) {
console.log("error occured in getS3Content", err);
cb(err);
}
if (result) {
cb(null, result);
}
})
}
1条答案
按热度按时间s4n0splo1#
你可以简单地使用guard+conditions来管理它,即使使用async/await或promise或async包更好。