@OGuman

Цикл for в gulp?

Я пытаюсь автоматизировать создание файлов в gulp. Я сделал таск prepare который должен брать названия секций из массива и генерировать файлы с встроенной разметкой внутри:

function prepare(){
        let i = 0;
	for(i; i<=sections.length-1;i++){
		return createFile(`src/parts/_${sections[i]}.html`, `
		<div class="${sections[i]}">
			<div class="${sections[i]}__content ${sections[i]}__container"></div>
		</div>\n`, 
		function (err) {
			// file either already exists or is now created (including non existing directories)
		});
	}
}


Но выходит эта ошибка:

62cb3fcc1944c158177142.png

Она означает нехватку return в функции. Как выполнить цикл for создавая файлы и при этом использовать return?

UPD ошибка была в цикле из за моей невнимательности. Использовал promise + data()
Решение:
function prepare(){
	let i = 0;
	return new Promise(function(done){
		let i = 0;
		for (i; i<sections.length; i++) {
			createFile(`src/parts/_${sections[i]}.html`, `<div class="${sections[i]}"><div class="${sections[i]}__content ${sections[i]}__container"></div></div>\n`, 
		function (err) {
			// file either already exists or is now created (including non existing directories)
		});
		}
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
function prepare(){
  const results = [];

  for(let i = 0; i <= sections.length-1; i++){
    const result = createFile(`src/parts/_${sections[i]}.html`, `
    <div class="${sections[i]}">
      <div class="${sections[i]}__content ${sections[i]}__container"></div>
    </div>\n`, 
    function (err) {
      // file either already exists or is now created (including non existing directories)
    });

    results.push(result); // Если функция выше ушла в ошибку, нужно это обработать отдельно
  }

  return results;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы