Если функция (не асинхронная) не возвращает явно значение, то она возвращает undefined
в конце функции
Вы можете использовать такие функции «без возврата» прекрасно работают в асинхронном контексте - они просто возвращают Promise, который разрешается до неопределенного
Хотя я не работал с упомянутой вами библиотекой, всегда помните что await x
является выражением, а не утверждением. Итак, если .seekTo является асинхронным, вы хотите:
&& await this._youTubeRef.seekTo(startTime);
если типы публикации чрезвычайно статичны, перечисления прекрасны
существует возможно мало различия между встраиванием
inner join lookuptable lt on lt.id = (int)myenum.sometype
в запросе и добавлении
inner join lookuptable lt on lt.name = "somehardcodeddescription"
они - оба встроенные константы, у первого просто есть четко определенный тип позади него
поочередно Вы могли использовать
inner join lookuptable lt on lt.name = myenum.sometype.ToString
я предпочитаю первого
если с другой стороны, новые типы поиска могут быть добавлены после того, как код развертывается, то перечисление быстро станет устаревшим;
но если существует базовое множество статических перечислимых значений, что потребности кода и остальные не имеют значения затем, что бывшее решение прекрасно все еще
как обычно, "это зависит" ;-)
Поддержав этот вид вещи в предыдущей жизни, я соглашаюсь с Steven что enum
довольно разумно. Ваш код является четким, и enum
средства необходимо обновить только единственный файл, если Вы добавляете типы данных.
Я также предложил бы комментировать enum
, проясняя, что значения должны соответствовать значениям в Publication Types
таблица в Вашей базе данных.
Хороший вопрос, между прочим! +1 для объяснения вопроса так ясно и занимающий время для мозговой атаки решений перед регистрацией.
Я думаю, что это зависит от того, как часто Ваш список типов публикации будет изменяться в будущем, и о том, как легко можно выставить обновление приложения. Если список не будет часто изменяться, или если обновление Вашего приложения в поле легко, то перечисление имеет смысл. Если список, вероятно, будет часто изменяться, или если обновление Вашего приложения является особенно трудным, то хранение списка в таблице в базе данных разумно.
По различным причинам было бы хорошо сохранить списки, такие как мой список типов публикации и другие в одном месте; база данных. Затем существует только одно место для них для изменения. Однако мне кажется, что это добавляет некоторую сложность к коду, и у меня должны были бы все еще быть некоторые твердые кодированные элементы в коде, если бы я хотел обратиться к определенному типу публикации, такому как Статьи в журнале. Поэтому имея перечислимый тип, который отражается, данные в таблице дают мне возможность вызывания моей функции количества читаемым способом
countPublications(authorID, publicationType.JournalArticle)
Если данные в изменениях таблицы, которые маловероятны, у меня может быть комментарий в базе данных, чтобы напомнить специалисту по обслуживанию (вероятно, меня) обновлять перечислимый тип в коде и наоборот.
Спасибо всем за Ваши ответы. Я могу теперь возобновить свой ум непринужденно.