Maison > Questions et réponses > le corps du texte
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粉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)); }