Tengo una función que obtiene datos de una API, y la función funciona correctamente según lo previsto:
const getStockData = async (stock) => { try { const response = await axios.get(`${BASE_URL}${stock}${KEY_URL}`); console.log(response); return response; } catch (error) { console.error('Error', error.message); }};
Y tengo otra función que obtiene datos de mi base de fuego que luego pasa el .ticker a la función anterior; sin embargo, cuando registro la respuesta de la promesa, los datos se devuelven nulos. ¿Hay alguna razón por la que no funcione como se esperaba?
const getMyStocks = async () => { let promises = []; let tempData = []; const querySnapshot = await getDocs(collection(db, 'myStocks')); querySnapshot.forEach((doc) => { console.log(doc.data().ticker); promises.push( getStockData(doc.data().ticker).then((res) => { console.log(res); tempData = { id: doc.id, data: doc.data(), info: res.data, }; }) );getMyStocks debe devolver la resolución de las promesas que crea...
// to reduce nested promises, this takes an FB doc and adds the getStockData query to it const getFBAndTickerData = async doc => { return getStockData(doc.data().ticker).then(res => { console.log(res); return { id: doc.id, data: doc.data(), info: res.data, }; }); } const getMyStocks = async () => { const querySnapshot = await getDocs(collection(db, 'myStocks')); let promises = querySnapshot.docs.map(doc => { console.log(doc.data().ticker); return getFBAndTickerData(doc); }); return Promise.all(promises); }