Я новичок в nodeJs, и я получаю борется с асинхронными вызовами.Как написать синхронную функцию в nodejs
в этом нижеприведенном коде есть массив источников, например (1,2,3 ..). каждый канал может содержать несколько изображений, и теперь я хочу удалить изображения из папки и из базы данных.
то, что я сделал это
for(var i=0; i<feedArr.length; i++){
var feedId = feedArr[i].feedid;
var listFeedImageQuery = "select imageUrl from feedImages where feedId='"+feedId+"'";
var deleteFeedImagesQuery = "delete from feedImages where feedId='"+feedId+"'";
model.client.query(listFeedImageQuery,function(err,result){
if(result.rows.length > 0){
for(var j=0; j<result.rows.length; j++){
fs.unlink(result.rows[j].imageurl, function(err) {
if(err)
console.log(err);
});
}
model.client.query(deleteFeedImagesQuery,function(err,result){
if(err)
console.log(err)
else
console.log(feedId +' were removed'); // last feedId only gets removing from database
});
}
});
}
здесь я могу иметь возможность удалить изображения из папки для хранения изображений, но я не смог удалить записи из базы данных, только последняя запись кормы становится удалена. остальные записи feedImage находятся в базе данных.
и я исследовал что-то об асинхронном модуле, но я не знаю, как адаптировать эту проблему к этому.
плз помощь по этому вопросу, спасибо за указатели
Вы знаете, что он имеет циклическую обработку одним потоком, не так ли? Почему бы вам не написать синхронную функцию. –
да, я знаю это, но в какой-то ситуации его разочарование, вы знаете, как это решить. – karthik
Возможный дубликат [Наилучший шаблон для обработки асинхронного цикла в Node.js] (http://stackoverflow.com/questions/8579557/the-best-pattern-for-handling-async-looping-in-node-js) – Seth