Использования именованных функций действительно не нужен, когда издательство, все эти работы:
Meteor.publish('tasks', function publishAllTasks() { return Tasks.find() });
Meteor.publish('tasks', function() { return Tasks.find() });
Meteor.publish('tasks',() => Tasks.find());
(Третья строка показывает Arrow function)
Там нет сырой разницы в функциональности, и выбор между три в основном сводятся к вкусу.
Однако есть одна вещь, которую делает только первый оператор (названное выражение функции): имя появляется в стековых трассировках при возникновении неперехваченного исключения.
Для примера скажем, вы допустили ошибку при написании Tasks
и писать Waffles
вместо:
// File: server/index.js
Meteor.publish('tasks', function publishAllTasks() { return Waffles.find() });
// or:
Meteor.publish('tasks',() => Waffles.find());
Вот трассировки стека в первом случае (я удалил метки времени)
Exception from sub tasks id egG3xJuLTLFvH4jLT ReferenceError: Waffles is not defined
at Subscription.publishAllTasks [as _handler] (server/index.js:4:10)
(some boring stuff)
Стек трассировки во втором случае:
Exception from sub tasks id u4rKBFH78uTBEoys2 ReferenceError: Waffles is not defined
at Subscription._handler (server/index.js:4:10)
(more boring stuff)
В тыс. В первом случае имя функции отображается четко.
Имя файла и строка все еще отображаются в конце строки.
Это может быть может быть полезным, если вы ползаете по своим журналам, чтобы найти все неперехваченные исключения, которые возникли из/прошли через publishAllTasks
.
Это не поможет при отладке, поскольку, поскольку у вас все еще есть имя файла и строка, и поиск неисправной функции - это просто открытие этого файла.
Так что, если у вас нет особых требований к обходу журналов, не беспокойтесь и не пойдите в зависимости от того, что вы предпочитаете.