Моя цель - скопировать файлы и ограничить файлы, скопированные параллельно определенной переменной. Поэтому я разделил массив q
обещаниями с вызовами fs.copy
в пакеты и запускать эти пакеты последовательно, используя функцию уменьшения.Разделить массив q обещаний на пакеты и запустить эти пакеты последовательно
var promise = _.reduce(packets, function (previous, packet) {
var map = _.map(packet, function (file) {
return q.nfcall(fs.copy, file.source, file.target);
});
return previous.then(q.all.bind(null, map));
}, q());
Как я могу достичь своей цели с q
?
Если у вас было множество обещаний, задачи уже были начаты. – Bergi
Ваш код выглядит отлично. Что не работает? – Bergi
@Bergi Когда я отслеживаю целевой каталог, я замечаю, что моя программа запускала больше задач копирования, чем я настраивал. Кажется, почти все задачи начались в одно и то же время. Конечно, у меня нет ряда обещаний; Я создаю цепочку обещаний так, как я описал. –