Heim >Web-Frontend >js-Tutorial >Versuchen Sie ... Catch V/s Safe Assignment (?=): Segen oder Fluch für die moderne Entwicklung?
Kürzlich habe ich den neuen Safe Assignment Operator (?.=) entdeckt, der in JavaScript eingeführt wurde, und ich bin wirklich fasziniert von seiner Einfachheit. ?
Der Safe Assignment Operator (SAO) ist eine Kurzform-Alternative zum herkömmlichen try...catch-Block. Damit können Sie Fehler inline abfangen, ohne für jeden Vorgang expliziten Fehlerbehandlungscode schreiben zu müssen. Hier ist ein Beispiel:
const [error, response] ?= await fetch("https://api.example.com/data");
Das ist es! So einfach ist das. Wenn die Abrufanforderung einen Fehler auslöst, wird dieser automatisch in der Fehlerkonstante gespeichert. andernfalls enthält die Antwort das Ergebnis. Ziemlich cool, oder?
Aber warte... da ist noch mehr.
Wenn Sie SAO verwenden, müssen Sie später noch Fehler behandeln, wie folgt:
async function getData() { const [requestError, response] ?= await fetch("https://api.example.com/data"); if (requestError) { handleRequestError(requestError); return; } const [parseError, json] ?= await response.json(); if (parseError) { handleParseError(parseError); return; } const [validationError, data] ?= validation.parse(json); if (validationError) { handleValidationError(validationError); return; } return data; }
Während SAO die Fehlerbehandlung vereinfacht, kann es zu ausführlicherem Code führen. Vergleichen Sie das mit einem herkömmlichen try...catch-Block:
async function getData() { try { const response = await fetch("https://api.example.com/data"); const json = await response.json(); const data = validation.parse(json); return data; } catch (error) { handleError(error); return; } }
In diesem Fall benötigt try...catch nur 9 Zeilen Code, während SAO ungefähr das Doppelte davon benötigt.
Also, was denkst du? Spart der Safe Assignment Operator Zeit oder erhöht er unnötig die Komplexität?
Das obige ist der detaillierte Inhalt vonVersuchen Sie ... Catch V/s Safe Assignment (?=): Segen oder Fluch für die moderne Entwicklung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!