В этом уроке вы узнаете, как управлять циклами в n8n
Обратите внимание на числа рядом с галочками успешного выполнения. Это число показывает, сколько раз узел был вызван в рабочем процессе:

Упражнения
Извлеките списки последних публикаций из трех RSS-потоков, возьмите от них название, дату и ссылку, и сложите в один список.
Здесь находятся данные для узла Code в первом шаге
return [
{
url: 'https://medium.com/feed/n8n-io',
},
{
url: 'https://dev.to/feed/n8n'
},
{
url: "https://techcrunch.com/feed/",
}
];Кроме того, вам еще понадобится код на 9-м шаге
const allData = []
let counter = 0;
do {
try {
const items = $("Set").all(0, counter).map(item => item.json);
allData.push.apply(allData, items);
} catch (error) {
return [{json: {allData}}];
}
counter++;
} while(true);
- Создайте узел Code, взяв код из списка выше ☝🏽, назовите его Source.
- Добавьте узел Split In Batches, и установите размер батча 1. Так вы будете работать только с 1 источником за раз. Запустите узел.
- Добавьте RSS Read, пусть читает новости по адресу из предыдущего узла. Запустите узел.
- В предыдущем узле очень много информации. Нам надо отобрать только название новости и ее адрес. Заведите узел Set, и создайте текстовые поля Title, Date и Link.
- Положите в эти свойства соответствующие данные из RSS Read.
- Теперь надо настроить проверку — окончен ли цикл по батчам, или нет. Для этого добавьте узел IF и логическое поле Boolean с проверкой равенства Equal. В поле Value 1 надо проверить, закончился ли цикл, генерируемый Split In Batch. Для этого из справки копируем выражение
{{$node["Split In Batches"].context["noItemsLeft"]}}.
А в полеValue 2включаем переключатель. Теперь, когда проверка на noItemsLeft станет true, цикл оборвется. - Сдвиньте узел If немного ниже. И из второго выхода false проведите стрелку до входа в узел Split In Batches. Так вы создадите цикл. Запустите workflow, он должен остановиться после 3-го прохода цикла
- Теперь нам надо накопить данные из всех трех циклов в одном узле. Для этого подключите еще один узел Code к выходу true узла IF и добавьте в него код из блока перед этими упражнениями . Он будет читать данные из всех трех выполнений узла Set и соберет их в одном массиве
- С помощью узла Item Lists извлеките данные из-под свойства allData
- Запустите процесс целиком и посмотрите на результат
Отметьте все решенные задачи на странице шаблона упражнений Циклы и узел Split In Batches