let name;
fetch('/api/user').then(r => r.json()).then(user => name = user.name);
console.log(name);
Im Netzwerk sehe ich die Antwort. In der Konsole undefined. Ich hab gefühlt drei Zeilen Code und schon die Kontrolle verloren. Wo muss das console.log hin?
Die Funktion gibt ein Promise zurück. Mit async/await kannst du innerhalb der Funktion auf fetch und json warten. Auch der Aufrufer muss dann auf das Ergebnis warten; async macht daraus keinen synchronen Rückgabewert.
Die Variable ist quasi schon zum Fototermin gerufen worden, während die Antwort noch im Bus sitzt. Ein setTimeout wäre dafür übrigens nur geraten, keine verlässliche Reihenfolge.