我正在尝试在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;
}