Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我不能';I don’我找不到我的不和中的错误_Javascript_Discord.js - Fatal编程技术网

Javascript 我不能';I don’我找不到我的不和中的错误

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) =>

我正在制作一个机器人,目前正在更改公会中的频道名称。但是当我使用node.js运行程序时,我的函数返回未定义的值。但在功能上,一切都是真实的

   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我已经试过了,但还是没有定义。