2016-10-08 3 views
1

Моя проблема заключается в следующем:node.js прохождение значение переменной в асинхронном режиме

У меня есть хорошая функция папка гусеничный, которая захватывает пути файлов. Я (я бы хотел) использовать эти файлы для тестирования.

1.) Захватывать файлы 2.) Есть некоторые тесты 3.) Работа Done

Это код, где я это называю:

  walk(csvRoot, function(err, results){ 
      if (err) throw err; 
      for (var i = 0; i < results.length; i++) { 
       return results[i] // - not working 
      } 
     }); 

Моя главная проблема в том, что я действительно хотел бы передать результаты переменной, которая будет содержать эти пути как массив, но пока не повезло.

Переменная возвращается как неопределенная, вот что я пытаюсь разрешить в настоящее время.

Не могли бы вы посоветовать, как это сделать?

+0

Вы пропустили асинхронный модуль, чтобы избежать этой проблемы или обратного вызова? – abdulbarik

ответ

1

Почему вы используете возврат в цикле for? Что вы ожидаете вернуться туда? В любом случае, если вы ожидаете получить результаты вне сферы действия функции walk, это не сработает. Я настаиваю на том, что вам нужно что-то в этом роде:

function getFiles (csvRoot, callback) { 
    walk(csvRoot, function (err, results) { 
    if (err) { 
     return callback(err); 
    } 

    return callback(null, results); 
    }); 
} 

getFiles(csvRoot, functions (err, files) { 
    // @todo: check for error 

    console.log(files); 
}); 
+1

Теперь это имеет гораздо больше смысла! Благодарим вас за быстрый и точный ответ! – Gregion

+0

@Gregion Если это было полезно, вы можете принять ответ :) –

+1

Мне еще нужно подождать еще 4 минуты, чтобы сделать это :) – Gregion

Смежные вопросы