如何從API呼叫回傳JSON結果
P粉916760429
P粉916760429 2024-01-10 17:08:12
0
1
431

我寫了一個 JavaScript 非同步函數來使用我發現的檢查拼字的 api:

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

要檢查的單字會作為字串參數傳遞,例如:

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

我想重寫這一行:

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

將結果作為 JSON 物件傳回給呼叫者,但我不知道如何做到這一點。這是我嘗試過的:

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

有人可以提出一個修復方案來讓這項工作按照我的意願進行嗎?我知道原始程式碼有效,因為原始 console.log 顯示了有效結果。但我的函數呼叫後的 console.log 僅顯示以下內容:

P粉916760429
P粉916760429

全部回覆(1)
P粉966335669

從函數中傳回你的承諾並刪除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));
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!