Javascript 我不能';I don’我找不到我的不和中的错误
我正在制作一个机器人,目前正在更改公会中的频道名称。但是当我使用node.js运行程序时,我的函数返回未定义的值。但在功能上,一切都是真实的Javascript 我不能';I don’我找不到我的不和中的错误,javascript,discord.js,Javascript,Discord.js,我正在制作一个机器人,目前正在更改公会中的频道名称。但是当我使用node.js运行程序时,我的函数返回未定义的值。但在功能上,一切都是真实的 function fetchdataFromApiUsd(moneykind){ fetch("https://api.exchangeratesapi.io/latest?base="+moneykind) .then((resp) => resp.json()) .then((data) =>
function fetchdataFromApiUsd(moneykind){
fetch("https://api.exchangeratesapi.io/latest?base="+moneykind)
.then((resp) => resp.json())
.then((data) =>{
const sonuc = data.rates
console.log(sonuc.TRY);//The values come true.
return sonuc.TRY;
} )
.catch(err => console.log(err));
}
但是当我这样打电话的时候
client.on('message', msg => {
if (msg.content === 'ping') {
msg.reply('Pong!');
}
if(msg.content==='hiThere'){
const currentusd=fetchdataFromApiUsd("USD");
const currenteuro=fetchdataFromApiUsd("EUR");
let myGuild = client.guilds.cache.get(msg.guild.id)
let channel = myGuild.channels.cache.get('297798780592324610')
let channel1 = myGuild.channels.cache.get('297798809533022208')
channel.setName('1 Dolar = '+currentusd) //Returns undefined
channel1.setName('1 Euro = '+currenteuro)//Returns undefined
.catch()
console.log(currentusd) //Returns undefined
console.log(currenteuro) //Returns undefined
}
});
我的错误是异步变量。我用花括号定义变量。成功了。此外,您应该在函数中调用这些变量,以再次定义更新值
美元,欧元;
函数ddd(){
交换(”https://api.exchangeratesapi.io/latest?base=USD)然后((data)=>{usd=data}).catch((err)=>console.log(err));
交换(”https://api.exchangeratesapi.io/latest?base=EUR)然后((data)=>{eur=data}).catch((err)=>console.log(err));
控制台日志(美元、欧元)
}
函数交换(url){
返回新承诺((解决、拒绝)=>{
获取(url)
.then(response=>response.json())
。然后(数据=>{
const prop=data.rates.TRY;
决议(道具);
})
.catch(err=>console.log(err));
})
}
将fetchdataFromApiUsd函数转换为承诺并等待它。这是因为您的程序在收到api数据之前正在记录/更改通道名称,因此undefined@Jakye我已经试过了,但还是没有定义。