Проблема заключается в том, что ваш обратный вызов вызывается, когда цикл завершен, поэтому value
изменился.
Решение состоит в том, чтобы использовать закрытие для хранения значения value
:
for (var value in CourseTitleArray) {
(function(value){
console.log( "Course Title " + CourseTitleArray[value]);
var newImageLocation = path.join(__dirname, 'app/img/courseImages', CourseTitleArray[value] + ".png");
fs.readFile(image.path, function(err, data) {
fs.writeFile(newImageLocation, data, function(err) {
console.log(CourseTitleArray[value] + " was created successfully");
});
});
console.log("Loop executed " + value);
})(value);
}
Обратите внимание, что непонятно, что вы имеете в виду с вашим журналом «Выполненный цикл»: когда вы регистрируетесь, запись еще не произошла.