Мне нравится плоскостность новой функции Async/Await
, доступной в Typescript и т. Д. Однако я не уверен, что мне нравится тот факт, что я должен объявить переменную, которую я await
на внешней стороне блока try...catch
, чтобы использовать ее позже. . Вот так:
let createdUser
try {
createdUser = await this.User.create(userInfo)
} catch (error) {
console.error(error)
}
console.log(createdUser)
// business
// logic
// goes
// here
Пожалуйста, поправьте меня, если я ошибаюсь, но, по-видимому, лучше всего не размещать несколько строк бизнес-логики в теле try
, поэтому я остаюсь только с альтернативой объявления createdUser
вне block, назначив его в блоке, а затем используя его после.
Какая лучшая практика в этом случае?
var
, зная, что переменная будет поднята. Это не так? - person Heretic Monkey   schedule 21.06.2017this.User.create()
, вы бы не добавляли ничего другого в try / catch. Но также вполне разумно поместить в блок попытки целую кучу логики. Все зависит от того, как / где вы хотите обрабатывать ошибку, и как вы хотите разработать свой код обработки исключений и что имеет смысл для данной операции. Общей передовой практики не существует. ЕДИНАЯ общая передовая практика - убедиться, что вы ловите и обрабатываете все ошибки соответствующим образом. - person jfriend00   schedule 21.06.2017async/await
является частью ES2017 (выпуск этого года), а не ES6 (который был выпущен два года назад). - person Felix Kling   schedule 21.06.2017