Heim > Fragen und Antworten > Hauptteil
Ich habe eine asynchrone JavaScript-Funktion geschrieben, um eine von mir gefundene API zur Rechtschreibprüfung zu verwenden:
async function checkWord(word) { var myHeaders = new Headers(); myHeaders.append("apikey", "My api key"); var requestOptions = { method: 'GET', redirect: 'follow', headers: myHeaders }; fetch(`https://api.apilayer.com/spell/spellchecker?q=${word}`, requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); }
Das einzelne zu prüfende Wort wird als String-Parameter übergeben, zum Beispiel:
let checkResult = checkWord('HOUSE'); console.log(checkResult);
Ich möchte diese Zeile umschreiben:
.then(result => console.log(result))
Das Ergebnis als JSON-Objekt an den Aufrufer zurückgeben, aber ich weiß nicht, wie das geht. Folgendes habe ich versucht:
.then(result => () => {return result.json();})
Kann jemand eine Lösung vorschlagen, damit das so funktioniert, wie ich es möchte? Ich weiß, dass der ursprüngliche Code funktioniert, da das ursprüngliche console.log gültige Ergebnisse anzeigt. Aber das console.log nach meinem Funktionsaufruf zeigt nur Folgendes:
P粉9663356692024-01-11 16:22:09
从函数中返回你的承诺并删除async
,如下所示:
function checkWord(word) { var myHeaders = new Headers(); myHeaders.append("apikey", "My api key"); var requestOptions = { method: 'GET', redirect: 'follow', headers: myHeaders }; return fetch(`https://api.apilayer.com/spell/spellchecker?q=${word}`, requestOptions) .then(response => response.text()) .then(result => result.json()) .catch(error => console.log('error', error)); }