JavaScript-在API响应之前设置了变量

时间:2019-02-14 16:48:52

标签: javascript html api asynchronous

我正在尝试在a子手游戏中实现我的第一个API调用。我想将变量“ word”设置为等于随机单词API返回的单词(尽管在这里我将API用于单词“ voluminous”)。

我的问题是在得到API响应之前,我在底部得到了单词的返回。我认为我可以从异步= true更改为= false,但是它什么都没有改变,然后我读了一个类似的线程,它可能冻结浏览器,并且我仍然需要知道如何异步编写。

我如何让程序等待响应?在这一点上,我几乎没有想法!

function callAPI() {
  let word = "";

  REQ.open("GET", "https://www.dictionaryapi.com/api/v3/references/collegiate/json/voluminous?key=48d4523e-8f43-459c-a957-62635467a", true);

  REQ.onload = function() {
    const DATA = JSON.parse(this.response);
    word = DATA[0].meta.id;
    console.log(word); // word is set to "voluminous"
    return word;

  }
  REQ.send();

  console.log(word); // word is "", followed by onload's "voluminous" after a second.
  return word;
}

document.getElementById("request").addEventListener("click", callAPI);



function generateNewWord() {
  const NEW_WORD = callAPI();
  console.log(NEW_WORD);
  return NEW_WORD;
}

0 个答案:

没有答案