Проблемы с пониманием ходунка node.js - PullRequest
0 голосов
/ 17 января 2020

У меня проблемы с пониманием того, как работает подпись / заголовок node.js walker . Я понимаю, что ходок может перебирать папку, и вы можете установить фильтры et c. Но я не совсем понимаю, как работает подпись .on.

Например:

Walker('/etc/')
.filterDir(function(dir, stat) {
  if (dir === '/etc/pam.d') {
    console.warn('Skipping /etc/pam.d and children')
    return false
  }
  return true
})
.on('entry', function(entry, stat) {
  console.log('Got entry: ' + entry)
})
.on('dir', function(dir, stat) {
  console.log('Got directory: ' + dir)
})

При .on сигнатурах: -Что делают части 'dir/entry' ?

РЕДАКТИРОВАТЬ Я конкретно имею в виду, что .on(**this part**, function(entry, stat)) {...} Эта часть делает

Ответы [ 3 ]

2 голосов
/ 17 января 2020

'dir', 'file', 'symlink', 'blockDevice' и т. Д. - это просто разные вещи, которые действуют как файлы в философии дизайна UNIX «все - файл». Например, вы можете перечислить устройства, подключенные к системе, такие как жесткие диски, запустив ls /dev/

События в Walker просто фильтруются по «типу файла». 'entry' вызовет функцию обратного вызова для каждого объекта файловой системы, 'file' будет запускаться только для файлов, и т. Д. c.

1 голос
/ 17 января 2020

Это функциональные параметры. Они определяют имена переменных, которые получают значения при вызове функции.

const myFunction = function(dir, stat) {
  console.log('Got directory: ' + dir)
};


myFunction("Foo", "Bar");

Просто эта функция вызывается кодом , который вы сами не написали .

1 голос
/ 17 января 2020

Ходок, я полагаю, асинхронно обращается к файлам, начиная с определенной вами папки, /etc/, и когда он обращается к файлам и папкам во время ходьбы, он запускает события.

Каждый раз, когда он получает доступ к любому элементу, будь то файл, папка или что-то еще, я бы предположил, что он запускает событие 'entry'.

Каждый раз, когда он обращается к файлу, он запускает событие 'file'.

Каждый раз он обращается к каталогу, запускает событие 'dir'.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...