javascript / beginner
Snippet
Abrufen von entfernten Daten mit Async/Await und Fehlerstatus
Asynchrone Operationen wie Netzwerkanfragen erfordern die Verwaltung von Lade-, Erfolgs- und Fehlerzuständen. Die Kombination von `async/await` mit `try...catch...finally` stellt sicher, dass Lade-Flags immer zurückgesetzt und Netzwerkfehler isoliert angezeigt werden.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { ref } from 'vue';const profile = ref(null);const isPending = ref(false);const fetchError = ref(null);async function loadUserProfile(userId) {isPending.value = true;fetchError.value = null;try {const response = await fetch(`https://api.example.com/users/${userId}`);if (!response.ok) {throw new Error(`HTTP error! status: ${response.status}`);}profile.value = await response.json();} catch (err) {fetchError.value = err.message;} finally {isPending.value = false;}}
vue
Erklärung
1
async function loadUserProfile(userId) {
Definiert eine asynchrone Funktion, die Promise-basierte Operationen abwarten kann.
2
const response = await fetch(`https://api.example.com/users/${userId}`);
Pausiert die Ausführung, bis die Netzwerkanfrage ein Ergebnis liefert.
3
profile.value = await response.json();
Liest den Datenstrom als JSON ein und speichert das Resultat im reaktiven Zustand.
4
finally { isPending.value = false; }
Stellt sicher, dass das Lade-Flag unabhängig von Erfolg oder Fehler zurückgesetzt wird.