lo que estoy tratando de hacer
Todavía soy nuevo en el trabajo con código asincrónico, estoy tratando de hacer algo básico, pero no veo lo que falta aquí.
Así que tengo esta función que recibe todos los pedidos de Firestore.
getAllOrders() = async () => { var orderArray = [] this.firestore.collection('orders') .where('status', '==', status) .where('createdAt', '>=', start) .where('createdAt', '<=', end) .get() .then(snapshot => { snapshot.forEach(docs => { orderArray.push(docs.data()) }) console.log(orderArray); //outputs the orders correctly return orderArray; }).catch(error => { console.log(error) }) }Quiero llamar a getAllOrders para obtener los pedidos y enviarlos a la consola. Probé los 2 métodos siguientes para obtener los pedidos para imprimir. Ambas salidas indefinidas.
Método 1
const onSubmit = async () => { props.firebase.getAllOrders().then((orders) => { console.log(orders); }) }Método 2
const onSubmit = async () => { const orders = await props.firebase.getAllOrders() console.log(orders) }Lo primero que se genera no está definido y luego la matriz de orden correcta, por lo que la espera no funciona. Sé que me falta algo para que esto funcione. ¿Qué debo cambiar para que funcione?