-1
Как это работает? function(){...}();
Я не могу понять, что происходит. Я думаю, что это javascript не node.js
головоломка. Но я не могу найти решение.Анонимная функция + javaScript
fs.readdir(filesDir, function(err, files) {
if (err) throw err;
for (var index in files) {
**var task = (function(file) {**
return function() {
fs.readFile(file, function(err, text) {
if (err) throw err;
countWordsInText(text);
checkIfComplete();
});
}
**})(filesDir + '/' + files[index]);**
tasks.push(task);
}
for (var task in tasks) {
tasks[task]();
Он определяет и сразу же вызывает функцию. Скобки вокруг него позволяют это путем преобразования строки в оператор (вместо объявления). Это было задано раньше, но я не могу найти прямую ссылку прямо сейчас. – Dave
Если вам интересно, причиной этого кода является сохранение локального файла в текущей итерации. Без него файл будет ограничен слишком широко, и все обратные вызовы будут видеть последний файл, а не свой собственный. – Dave