我试图获取存储在浏览器(应用程序)中的值,以防api无法找到该股票名称。如果我从调用它的地方进行控制台日志,则无法定义。如果我将控制台记录在函数中,它将为我提供正确的值。
在这里我调用名为getStockPrice的函数:
function getStockApi(stock, r, inputFinalValue) {
fetch(`https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=${stock}&apikey=PPPUXKVI0RPUC2YM`)
.then(function (res) {
return res.json();
})
.then(function (data) {
if (data['Global Quote']['05. price'] == null) {
table.rows[r].cells[1].innerHTML = Store.getStockPrice(table.rows[r].cells[0].innerHTML);
}
以下是函数本身:
class Store {
static getStockPrice(name) {
const stocks = Store.getStock();
stocks.forEach(stock => {
if (stock.name == name && stock.price) {
return stock.price;
}
});
}
static getStock() {
let stocks;
if (localStorage.getItem('stocks') === null) {
stocks = [];
} else {
stocks = JSON.parse(localStorage.getItem('stocks'));
}
return stocks;
}
}