Мне нужно изменить размер некоторых изображений. Проблема в том, что библиотека, которую я использую, выполняет одно изменение размера для обратного вызова.Запустить цикл над обратным вызовом, узел js
Я хочу, чтобы изменить размер нескольких изображений, так что я положил его в петлю:
exports.resizeImages = function (req, res) {
var images = fs.readdirSync('uploads/');
for (var n = 0; n < files.length; n++) {
var tgt = 'uploads/resized/' + images[n];
gm(tgt).resize(150).write(tgt, function (err) {
if (err) {
console.log('resizing failed');
res.status(400).send('failed to resize');
return;
}
if (n == images.length) {
res.status(200).send();
}
});
}
}
Я знаю, что я не могу сделать это, как это. Мне нужно, чтобы цикл подождал, пока обратный вызов не ответит каким-то образом. Я видел несколько примеров, но я не могу заставить его работать.
Любые идеи?
Вам нужно использовать Promises. – djechlin
где «файлы»? – Alex
Что вы хотите сделать, если только один из файлов не работает, вы по-прежнему отправляете 400? – thefourtheye