Heim > Web-Frontend > js-Tutorial > Versuchen Sie ... Catch V/s Safe Assignment (?=): Segen oder Fluch für die moderne Entwicklung?

Versuchen Sie ... Catch V/s Safe Assignment (?=): Segen oder Fluch für die moderne Entwicklung?

WBOY
Freigeben: 2024-08-26 21:33:32
Original
920 Leute haben es durchsucht

Try...Catch V/s Safe Assignment (?=): A Boon or a Curse for Modern Development?

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");
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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;
}
}
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage