У меня есть код nodejs, который имеет обратный вызов, и я не мог понять, как он работает. Может кто-нибудь объяснить этоОбратный вызов без параметра в javascript
function readJSONIntoArray(directory, array, callback)
{
var ending = 'json';
fs.readdir(directory, function (err, files)
{
if (err)
throw err;
var fileCnt = files.length;
files.forEach(function (file)
{
if (endsWith(file, '.' + ending))
{
file = file.substring(0, file.length - (ending.length + 1));
var fileContent = require(path.join(directory, file));
array.push(fileContent);
log.info('Read file: ' + file);
}
fileCnt--;
if (fileCnt === 0 && typeof callback === 'function')
{
callback();
}
});
});
}
Здесь обратный вызов пуст, поэтому, я думаю, никакое значение не возвращается. Но в фактическом выводе массив возвращается. Я не мог понять, что пустой обратный вызов может возвращать массив.
Вызов функции: readJSONIntoArray(profilefolder, profiles, setProfileDescriptions);
Определение setProfileDescriptions отдельно.
function setProfileDescriptions()
{
profiles = bubblesort(profiles, 'order');
}
Внутри setProfileDescriptions
массив профиля заполняется JSon данных из файла для чтения в функции чтения. Может ли кто-нибудь объяснить, как третий аргумент в вызове функции readJSONIntoArray
распознается как функция и возвращаются профили массива?
профили не заданы параметру 'setProfileDescription'. Однако переменная может быть глобальной, если вы можете получить к ней доступ из-за этого. –