Ich versuche, Fetch zu verwenden, um ein JSON-Objekt von einer API abzurufen, ich möchte den endgültigen aufgelösten Wert des Objekts zurückgeben, so dass jeder, der die Funktion verwendet, direkt erhalten kann Wert, ohne dass das Versprechen, das es zurückgibt, gelöst werden muss.Einen aufgelösten Wert von 'fetch' zurückgeben
function f() {
let result = fetch(url, {
method: 'GET'
})
.then(response => response.json())
.then(json => {
return json
}).catch(err => {
// Error
});
return result;
}
Ich weiß nicht wirklich, ob dies möglich ist oder nicht, aber ich werde um Hilfe, Vielen Dank im Voraus dankbar sein.
Mögliches Duplikat [Wie kann ich die Antwort von einem asynchronen Aufruf zurückkehren?] (Https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an -asynchroner Aufruf) – WilomGfx
Sie können asynchronen Code nicht in synchronen Code umwandeln, deshalb gibt es überhaupt Versprechungen. – nnnnnn
Sie geben bereits das Versprechen von result zurück, Sie können das tatsächliche Ergebnis nicht zurückgeben, weil es noch nicht verfügbar ist und Sie können nicht darauf warten, weil es blockiert (jhpratt antwort wartet eigentlich nicht, entweder das Ergebnis aber immer noch zurückzugeben) gibt ein Versprechen des Ergebnisses zurück). Versprechen warum und wie hier erklärt werden: https://stackoverflow.com/a/47678417/1641941 – HMR