Javascript-从API捕获值的问题

Javascript-从API捕获值的问题,javascript,Javascript,我正在学习网络开发,我正在努力学习基础知识。我已经做了我自己的项目,以找到当前的ETH价格 我的JS代码如下: const button1=document.querySelector(“#eth”); const list=document.querySelector(“#price”); const addPrice=async()=>{ const price=等待checkPrice(); console.log(price) const newLI=document.createE

我正在学习网络开发,我正在努力学习基础知识。我已经做了我自己的项目,以找到当前的ETH价格

我的JS代码如下:

const button1=document.querySelector(“#eth”);
const list=document.querySelector(“#price”);
const addPrice=async()=>{
const price=等待checkPrice();
console.log(price)
const newLI=document.createElement('LI');
新增(价格);
list.append(newLI)
}
const checkPrice=async()=>{
axios.get()https://api.cryptonator.com/api/ticker/eth-aud')
。然后(res=>{
console.log(res.data.ticker.price)
返回res.data.ticker.price
})
.catch(错误=>{
console.log('Sorry,error!')
返回“对不起,错误!”
})
}
按钮1.addEventListener('click',addPrice)

获得ETH价格




显示未定义的原因是因为checkPrice函数立即返回。 要使其正常工作,checkPrice必须返回一个承诺,该承诺可以由const price=await checkPrice()等待。否则,它会立即返回一个未定义的值。 请检查更正的代码

const button1=document.querySelector(“#eth”);
const list=document.querySelector(“#price”);
const addPrice=async()=>{
const price=等待checkPrice();
console.log(price)
const newLI=document.createElement('LI');
新增(价格);
list.append(newLI)
}
const checkPrice=async()=>{
返回等待axios.get('https://api.cryptonator.com/api/ticker/eth-aud')
。然后(res=>{
console.log(res.data.ticker.price)
返回承诺。解析(res.data.ticker.price);
})
.catch(错误=>{
console.log('Sorry,error!')
返回“对不起,错误!”
})
}
按钮1.addEventListener('click',addPrice)

获得ETH价格




您需要从checkPrice()方法返回承诺。当前,您不返回任何内容(void)


第一个console.log中的问题是console.log不是异步函数,因此它在异步函数之前执行。我只是在等你解决你的问题

const button1=document.querySelector(“#eth”);
const list=document.querySelector(“#price”);
const addPrice=async()=>{
const price=等待checkPrice();
const newLI=document.createElement('LI');
新增(价格);
list.append(newLI)
}
const checkPrice=async()=>{
const result=等待axios.get('https://api.cryptonator.com/api/ticker/eth-aud')
返回result.data.ticker.price
}
按钮1.addEventListener('click',addPrice)

获得ETH价格




你所说的“捕获”是什么意思?代码记录
undefined
(返回
addPrice
),然后通过
console.log(price)
执行const price=wait checkPrice()时,我希望在html中返回“3833.28404958”(如果有意义的话)。相反,当我希望它返回3833时,它只会附加“undefined”。“newLI.append(price)”应该附加“3833”而不是“undefined”。这可能是因为
addEventListener
不理解异步函数。
const checkPrice = async() => {
  return axios.get('https://api.cryptonator.com/api/ticker/eth-aud')
    .then(res => {
      console.log(res.data.ticker.price)
      return res.data.ticker.price


    })
    .catch(err => {
      console.log('Sorry, error!')
      return 'Sorry, error!'
    })
}