Heim >Web-Frontend >js-Tutorial >Wie verwende ich Try...Catch mit Async/Await in TypeScript richtig?
Wenn Sie die asynchrone Natur von Async/Await in Sprachen wie TypeScript nutzen, ist es wichtig, die richtige Syntax zu verwenden zur Fehlerbehandlung. Eine häufige Frage stellt sich hinsichtlich der Platzierung von Variablen, die in try...catch-Blöcken erwartet werden sollen.
Es gilt allgemein als Best Practice, die Variablendeklaration innerhalb den try-Block und weisen Sie dort seinen Wert zu. Dies ermöglicht die Fehlerbehandlung im Rahmen der Variablenerstellung und stellt sicher, dass sie immer einen gültigen Wert enthält:
try { const createdUser = await this.User.create(userInfo); console.log(createdUser); // business logic goes here } catch (error) { console.error(error); // from creation or business logic }Alternativen zur externen DeklarationWenn Sie Fehler nur von der Variablen behandeln möchten Innerhalb der Promise-Zuweisung haben Sie drei Alternativen:
let createdUser; try { createdUser = await this.User.create(userInfo); } catch (error) { console.error(error); // from creation } if (createdUser) { // user was successfully created console.log(createdUser); // business logic goes here }
try { const createdUser = await this.User.create(userInfo); // user was successfully created console.log(createdUser); // business logic goes here } catch (error) { if (error instanceof CreationError) { console.error(error); // from creation } else { throw error; } }
await this.User.create(userInfo).then(createdUser => { // user was successfully created console.log(createdUser); // business logic goes here }, error => { console.error(error); // from creation });Jede Alternative hat ihre Vor- und Nachteile. Berücksichtigen Sie daher die spezifischen Anforderungen Ihrer Anwendung, wenn Sie den am besten geeigneten Ansatz auswählen.
Das obige ist der detaillierte Inhalt vonWie verwende ich Try...Catch mit Async/Await in TypeScript richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!