P粉7399424052023-08-04 00:56:41
问题在于你声明了一个名为historicalDividend的变量,并将其初始化为空数组,然后在每次迭代中重新分配整个变量给时间序列数据,这意味着你会覆盖每次的值。此外,entry未定义,我认为你可能想使用date。
为了解决所有这些问题,你应该使用map()方法,它接受一个数组,循环遍历它,并使用回调函数返回值创建一个新数组。
作为另一个提示:你应该检查响应的HTTP状态码,以确保你获得了预期的响应。
下面是修复了这两个问题的你的代码版本:
async function fetchTimeSeriesDailyAdjusted(ticker) {
//Fetch function to get the daily close and the dividends
const apiTimeSeriesDailyAdjusted = `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=${symbol}&apikey=${apiKey}`; //Lik of the API - update the symbol
try {
const response = await fetch(apiTimeSeriesDailyAdjusted);
// Check for HTTP response code
if (!response.ok) {
throw new Error(
$`Fetching daily time series data failed with status code '${response.status}'`
);
}
const data = await response.json();
const historicalDividend = data["Time Series (Daily)"].map(
(entry) => entry["7. dividend amount"]
);
console.log(historicalDividend); //Console log to see the dividend
return historicalDividend; //Value that the function must return
} catch (error) {
console.error("Error fetching apiTimeSeriesDailyAdjusted"); //Log of the error
}
}