Corriger Try...Catch De La Syntaxe À L'Aide Async/Await

J'aime la planéité de la nouvelle Async/Await fonctionnalité disponible en caractères d'imprimerie, etc. Cependant, je ne suis pas sûr que j'aime le fait que je dois déclarer la variable, je suis awaiting à l'extérieur d'un try...catch bloc afin de l'utiliser plus tard. Comme:

let createdUser
try {
    createdUser = await this.User.create(userInfo)
} catch (error) {
    console.error(error)
}

console.log(createdUser)
//business
//logic
//goes
//here

S'il vous plaît corrigez-moi si je me trompe, mais il semble être la meilleure pratique pas de placer plusieurs lignes de la logique métier dans le try corps, donc je suis reste que l'alternative de déclarer createdUser à l'extérieur du bloc, l'affectant dans le bloc, puis à l'utiliser après.

Quelles sont les meilleures pratiques dans ce cas?

Les "meilleures pratiques" est d'utiliser ce qui fonctionne et est compréhensible et maintenable, etc.. Comment pourrions-nous répondre à cette question "correctement"? Je venais d'utiliser var, sachant que la variable serait hissé. C'est que "le mal"?
try/catch doit contenir exactement ce que vous voulez capturer une exception. Si vous êtes à la recherche explicitement pour les erreurs provenant de this.User.create() alors vous ne serait pas mettre autre chose à l'intérieur de la try/catch. Mais, il est parfaitement raisonnable de conception pour mettre tout un tas de logique à l'intérieur d'un bloc try. Tout dépend de comment/où vous voulez gérer une erreur et comment vous souhaitez concevoir votre code de gestion des exceptions et ce qui fait sens pour une opération donnée. Il n'y a pas de générique de meilleures pratiques. L'UN des génériques de la meilleure pratique est de s'assurer que vous attrapez et de gérer toutes les erreurs d'une manière appropriée.
async/await fait partie de ES2017 (de cette année), pas ES6 (qui a été publié il y a deux ans).

OriginalL'auteur Spencer Allen Gardner | 2017-06-20