Javascript:函数返回的是{}而不是整数(这是我所期望的),是问题吗?

Javascript:函数返回的是{}而不是整数(这是我所期望的),是问题吗?,javascript,return,es6-promise,console.log,Javascript,Return,Es6 Promise,Console.log,我对JavaScript(以及一般的编程)还比较陌生,所以如果这是一个愚蠢的问题,我要提前道歉 我目前正在做一个涉及股票价格的小型项目,但遇到了一个问题,我在解决这个问题时遇到了一些困难 我正在编写一个名为getStockPrice的函数,它接收股票代码名,并通过从alphavantage调用API函数返回股票价格(作为整数) 异步函数getStockPrice(股票代码){ 设num=0; 等待alpha.data.quote(股票代码)。然后((数据)=>{ num=parseInt(数据

我对JavaScript(以及一般的编程)还比较陌生,所以如果这是一个愚蠢的问题,我要提前道歉

我目前正在做一个涉及股票价格的小型项目,但遇到了一个问题,我在解决这个问题时遇到了一些困难

我正在编写一个名为getStockPrice的函数,它接收股票代码名,并通过从alphavantage调用API函数返回股票价格(作为整数)

异步函数getStockPrice(股票代码){ 设num=0; 等待alpha.data.quote(股票代码)。然后((数据)=>{ num=parseInt(数据[“全局报价”][“05.price”]); }); console.log(num); 返回num; }尝试添加
在调用函数之前等待

它将不起作用,因为异步函数返回承诺

请改为尝试以下代码

async function getStockPrice(ticker) {
  const data = await alpha.data.quote(ticker);
  const num = parseInt(data["Global Quote"]["05. price"]);
  console.log(num);
  return num;
}

(async () => {
 const price = await getStockPrice(ticker);
 console.log(price);
})();

异步函数总是返回一个promise,实际上,您最终为等待解决的
price
分配了一个承诺。您能解释一下为什么它们需要添加wait吗?这可能对未来的读者有所帮助非常感谢。这成功了!试图解决此问题时,我的头很痛。函数正在返回一个承诺,因此需要使用.then块来获取返回的块或wait关键字。然后,在解决承诺后将调用,但wait将强制等待,直到返回某个内容