Maison  >  Questions et réponses  >  le corps du texte

Comment renvoyer le résultat JSON d'un appel API

J'ai écrit une fonction asynchrone JavaScript pour utiliser une API que j'ai trouvée pour vérifier l'orthographe :

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

Le mot unique à vérifier est passé en paramètre de chaîne, par exemple :

let checkResult = checkWord('HOUSE');
console.log(checkResult);

Je veux réécrire cette ligne :

.then(result => console.log(result))

Renvoyer le résultat à l'appelant sous forme d'objet JSON, mais je ne sais pas comment faire cela. Voici ce que j'ai essayé :

.then(result => () => {return result.json();})

Quelqu'un peut-il suggérer une solution pour que cela fonctionne comme je le souhaite ? Je sais que le code d'origine fonctionne car le console.log d'origine affiche des résultats valides. Mais le console.log après mon appel de fonction n'affiche que ce qui suit :

P粉916760429P粉916760429283 Il y a quelques jours436

répondre à tous(1)je répondrai

  • P粉966335669

    P粉9663356692024-01-11 16:22:09

    Renvoyez votre promesse de la fonction et supprimez async comme ceci :

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

    répondre
    0
  • Annulerrépondre