如何解决Javascript:函数返回的是{}而不是整数这是我所期望的,是否发生问题?
我对JavaScript(以及一般的编程)还是比较陌生的,所以如果这是一个愚蠢的问题,我会提前道歉。
我目前正在从事一个涉及股票价格的小型项目,但是遇到一个问题,需要解决一些问题。
我正在编写一个名为getStockPrice的函数,该函数接受一个股票报价器名称,并通过从alphavantage调用API函数返回股票价格(作为整数)。
async function getStockPrice(ticker) {
let num = 0;
await alpha.data.quote(ticker).then((data) => {
num = parseInt(data["Global Quote"]["05. price"]);
});
console.log(num);
return num;
}
该函数中的console.log(num)行会按我期望的那样打印出股价。
但是,当我将getStockPrice中的值保存到变量中并将该变量插入到数据库中时,数据库将得到一个空对象{}而不是我想要的股票价格。
const price = getStockPrice(ticker);
这可能与JavaScript中的promises功能有关吗?由于记录getStockPrice的返回值会得到一个整数,所以我很惊讶该函数输出一个空对象。
如果有人能指出我正确的方向,我将非常感激!
解决方法
当异步函数返回一个Promise时,它将不起作用。
请改用以下代码。
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);
})();
,
尝试添加
await
,然后调用该函数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。