Javascript 对axios请求数组使用promise.all将返回最后一个对象中的所有响应,而不是将它们分散
每个对象中应该有大约250个数组,但出于某种原因,每个对象都有一个数组,最后一个除外,它有1250个数组 我如何才能分散响应,以便能够单独访问每个响应Javascript 对axios请求数组使用promise.all将返回最后一个对象中的所有响应,而不是将它们分散,javascript,reactjs,axios,Javascript,Reactjs,Axios,每个对象中应该有大约250个数组,但出于某种原因,每个对象都有一个数组,最后一个除外,它有1250个数组 我如何才能分散响应,以便能够单独访问每个响应 const [coinData, setCoinData] = useState(); const [loading, setLoading] = useState(true); useEffect(() => { createLocalStorage(); let existingL
const [coinData, setCoinData] = useState();
const [loading, setLoading] = useState(true);
useEffect(() => {
createLocalStorage();
let existingLocalStorage = JSON.parse(localStorage.getItem('items'));
const fetchData = async () => {
const data = await Promise.all(
existingLocalStorage.map(obj =>
coinGecko.get(`/coins/${obj[0].coin}/market_chart/`, {
params: {
vs_currency: 'usd',
days: obj[0].time
}
}),
)
);
setCoinData(data);
setLoading(false);
};
fetchData();
}, []);
以下是回应:
我正在使用create react应用程序,并在浏览器中使用console.log进行测试-
import axios from 'axios';
useEffect(() => {
createLocalStorage();
let existingLocalStorage = JSON.parse(localStorage.getItem('charts'));
const fetchData = async () => {
await axios.all([api1, api2]).then(axios.spread((...responses) => {
const resp1 = responses[0]
const resp2 = responses[1]
// use the results
})).catch(errors => {
// errors.
})
}
fetchData();
}, []);
我将时间作为字符串“日”、“周”、“月”、“年”、“最大值”发送,我完全忘记了我需要将它们转换为数值。因为max是唯一可接受的参数,所以它是唯一返回我所寻找的响应的参数visualstudio代码哦,很抱歉。我正在使用CreateReact应用程序,并使用console查看结果。该死,是的,我正在使用浏览器。我刚刚用一些额外的信息重播了我的帖子。你认为还有什么我应该包括在内的吗?为什么你要声明fetchData是异步的,然后不等待它呢?Promise.all块中也缺少代码。\const data=wait Promise.allexistingLocalStorage.mapobj=>;这不管用吗?还有,我删除了一些行来测试一些东西。丢失的代码现在应该在那里了