我想建立一个网站,使用客户端调用一个带有JavaScript的API。我不知道怎么做,所以我搜索了一下,发现了jQuery。然后我编写了我的函数来发出请求。它看起来如下所示:
async function makeRequest(url) {
await $.getJSON(url, function (data) {
console.log(data);
return data;
});
}
这工作良好,print语句打印接收到的数据。但是如果我从另一个函数调用这个函数,它不会返回任何东西。每次都是未定义的。一个例子:
document.addEventListener("DOMContentLoaded", async function () {
var players = await makeRequest(
"https://phijoto.ddns.net/Playtime/playtime.json"
);
console.log(players);
});
async function makeRequest(url) {
await $.getJSON(url, function (data) {
console.log(data);
return data;
});
}
如果我运行这个,它会通过第二个print语句输出接收到的数据,但第一个总是返回“undefined”。对此我能做些什么呢?
您必须从makerequest
返回一些内容。
还有:不要把回调和承诺混在一起,充其量这会让代码变得混乱。
async function makeRequest(url) {
const data = await $.getJSON(url);
console.log(data);
return data;
}