我试图使用一个名为public-ip的包,但是当我在github上使用这个示例时,我不能使用异步代码之外的变量
我尝试过各种解决方案,通过制作函数
function GetAddress() {
return await publicIp.v4()
}
但这些只是返回一个承诺,我已经尝试谷歌如何不得到一个承诺/得到IP从它,但没有任何运气。
如有任何帮助,不胜感激
定义一个异步函数,并按如下方式使用它:
async function GetAddress () {
return await publicIp.v4();
}
var address;
GetAddress()
.then( result => {
address = result;
console.log(address);
});
如果要使用格式“address=GetAddress()”,则需要在带有await的异步函数中执行此操作:
async function GetAddress () {
return await publicIp.v4();
}
async function useGetAddress(){
address = await GetAddress()
console.log(address);
}
useGetAddress();
.then()
可能会解决您的问题:
publicIp.v4()
.then(ip => {
// ip is the value, do your logic here
console.log(ip)
})
.catch(error => {
// if it throws an error, you can catch it and suppress it here
throw error;
});
请参阅MDN上的promise.then()