Heim  >  Fragen und Antworten  >  Hauptteil

So geben Sie ein JSON-Ergebnis aus einem API-Aufruf zurück

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粉916760429P粉916760429283 Tage vor437

Antworte allen(1)Ich werde antworten

  • P粉966335669

    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));
    }

    Antwort
    0
  • StornierenAntwort