我正在尝试从 API 获取公共 IP 地址,然后让该 IP 在另一个函数 ( ninjaUniqueVisitorRequest()) 中使用。
我有以下代码:
function ninjaGetIp() {
var ipRequest = new XMLHttpRequest();
ipRequest.open('GET', "https://api.ipify.org?format=jsonp=", true);
ipRequest.send();
ipRequest.onload = function () {
if (ipRequest.status >= 200 && ipRequest.status < 400) { // If response is all good...
return ipRequest.responseText;
} else {
console.log('There was an error retrieving the public IP.');
return '127.0.0.1';
}
}
}
async function ninjaUniqueVisitorRequest() {
// var ninjaSiteUuid = ninjaGetSiteUuid();
// var ninjaFingerprint = await ninjaGetFingerprint();
var ninjaPublicIp = await ninjaGetIp();
console.log(ninjaPublicIp);
}
目前,当我运行返回ninjaUniqueVisitorRequest();时。console.log(ninjaPublicIp);undefined
我有点理解它会在发出请求之前立即返回,但这就是我认为我正在使用async/await.
任何想法表示赞赏!PHP的家伙在这里,对我放轻松。