사용 async parallel
있습니다. 서비스가 다중 삽입을 허용하지 않는 경우에는 async
each
또는 map
을 사용해야합니다.
const async = require("async");
// example data
const data = {
images: [{"image":"image1"},{"image":"image2"}]
videos: [{"video":"video1"},{"video":"video2"}]
tags: [{"userId":2},{"userId":23} ]
text: "having a good day :)"
}
if(!data.text){
//return 'text is required' message
}
else{
const imageUrls = [];
const videoUrls = [];
// http://caolan.github.io/async/docs.html#parallel
async.parallel({
uploadImages: function(callback){
async.each(data.images, function(image, eachCallback){
// upload each image
// push returned url in imageUrls
// call return eachCallback(), or if err then return eachCallback(err)
}, function(err){
if(err){
return callback(err)
}
else{
return callback()
}
})
},
uploadVideos: function(callback){
async.each(data.videos, function(video, eachCallback){
// same process as images
}, function(err){
if(err){
return callback(err)
}
else{
return callback()
}
})
}
}, function(err, results){ //final callback of async parallel
if(err){
//handle err
}
else{
const obj = {
images: imageUrls,
videos: videoUrls,
tags: data.tags,
text: data.text
}
//insert obj to db and respond with success message
}
})
}
나는'이러한 여러 배열을 처리하는 방법을 이해하려고 노력하고, 코딩 아무것도 havn't는 더 많은 정보/코드 샘플 봉오리 –
필요' – Khan
async'' 당신은 당신의 비동기 함수 내에서 try/catch를 사용하십시오 이미지, 동영상 등 –