Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nuevas funcionalidades para reforzar OA Promesas en Buger Queen #1158

Merged
merged 5 commits into from
Dec 14, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions projects/04-burger-queen/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
* [4. Consideraciones generales](#4-consideraciones-generales)
* [5. Criterios de aceptación mínimos del proyecto](#5-criterios-de-aceptación-mínimos-del-proyecto)
* [6. Pistas, tips y lecturas complementarias](#6-pistas-tips-y-lecturas-complementarias)
* [7. Funcionalidades para reforzar OA de promesas](#7-funcionalidades-para-reforzar-oa-de-promesas)

***

Expand Down Expand Up @@ -490,3 +491,44 @@ yarn start
* [Qué es Serverless? | FooBar - YouTube](https://www.youtube.com/watch?v=_SYHUpLi-2U)
* [Firebase](https://firebase.google.com/)
* [Serverless Architectures - Martin Fowler](https://www.martinfowler.com/articles/serverless.html)

## 7. Funcionalidades para reforzar OA de promesas

Te sugerimos implementar las siguientes funcionalidades para que
puedas reforzar aún más los Objetivos de Aprendizaje asociados a
promesas.

* Agrega la opción de actualizar 2 o más pedidos que esten en la
cocina. Muestra al usuario un **único** mensaje de confirmación
cuando **todos** los pedidos hayan sido actualizados con éxito.
Recuerda, firestore al
[actualizar un documento](https://firebase.google.com/docs/firestore/manage-data/add-data#update-data)
retorna una promesa. ¿Cómo podrías mostrar el mensaje de confirmación
unicamente cuando todas las promesas se hayan resuelto? Te sugerimos
revisar la función
[Promise.all](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all).

* Cuando un pedido finalice, puedes incorporar a tu código la
siguiente función `getDiscount`:

```js
export const getDiscount = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const discount = parseInt(Math.random() * 100);
if (discount > 80) {
reject(new Error(`¡${discount}% es demasiado descuento!`));
} else {
resolve(discount);
}
}, 0);
});
}
```

Que retornará una promesa que generará un número entero aleatorio
`discount` que puedes utilizar como porcentaje de descuento para
calcular el total del pedido en caso de que sea menor o igual a 80;
En caso de que el número entero `discount` sea mayor a 80,
la promesa retornará un error con el mensaje de que el descuento es
demasiado grande, y por ende, no aplicable.