Одна вещь, которую мне нравится делать в моем коде JavaScript, - это добавлять слово «Async» в конец имен функций, возвращающих обещание. Это улучшает читаемость и позволяет людям сразу узнать, что он возвращает обещание, когда intellisense показывает вам имя функции.
Пример:
function getDataFromThesServer() {}
Было бы:
function getDataFromThesServerAsync() {}
Это стандарт Microsoft для библиотек .NET. Но я думаю, что им это нужно, а нам - нет.
Им это нужно, потому что у них есть масса синхронных методов с асинхронными альтернативами. Суффикс помогает им передать схожесть намерений, не изобретая новый корень имени метода.
Но это попахивает венгерской нотацией, которая стала устаревшей, когда редакторы / IDE начали предоставлять помощь API.
Более того, у нас нет такого же потенциала для конкуренции асинхронных и синхронизирующих сигнатур. Это случается, конечно, но не так часто, потому что все межпроцессные коммуникации в мире JS должны быть асинхронными; нет конкурирующих альтернатив синхронизации. Поэтому я думаю, что мы можем обойтись без лишних писаний и чтений.
Более того, довольно очевидно, если посмотреть на используемый метод, является ли он асинхронным или нет.
Вы вполне можете не согласиться. Но я думаю, что руководство по стилю должно рекомендовать только проверенные методы, которые широко используются и широко применяются ... а это - нет.
Руководство по стилю также не должно запрещать это, что дает вам возможность добавить его к стандартам вашей группы, если хотите.
Вот скучная практическая заметка. Я обнаружил, что с увеличением глубины понимания все больше функций возвращают обещания. Добавление слова Async к значительной части всех функций в приложении не кажется победой.
интересное обсуждение. Чтобы было ясно, я не делаю этого и не меняюсь ... но я не думаю, что это плохо. Зачем? это соглашение, и если вы думаете, что он вам лучше читается, попробуйте. но я уверен, что после того, как вы получите все больше и больше кода с этим, вы можете увидеть то, что упоминал @kylecordes ... у многих fn он есть, и он вам действительно не нужен.
Я не буду этого делать, и я согласен с тем, что чаще всего можно увидеть, как функции используют обещания, чем нет, и практически все асинхронно :)
Я тоже из .Net, и я предполагаю, что еще одна причина добавления * Async к асинхронным функциям - дать вызывающему абоненту знать, что это асинхронная функция, и не забыть использовать await
.
Любая хорошая практика (или поддержка IDE), которая может напомнить вызывающему, что await
может отсутствовать?
Я использую VSCode и WebStorm.