From 587f46b0741da423271046a4b95e7ecfb631cdde Mon Sep 17 00:00:00 2001 From: andres1234loa Date: Fri, 10 Jul 2020 12:59:43 -0500 Subject: [PATCH 1/2] Update and rename PULL_REQUEST_TEMPLATE.md to PULL_REQUEST_TEMPLATE.md --- "PULL_REQUEST_TEMPLATE.md\t" => PULL_REQUEST_TEMPLATE.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename "PULL_REQUEST_TEMPLATE.md\t" => PULL_REQUEST_TEMPLATE.md (65%) diff --git "a/PULL_REQUEST_TEMPLATE.md\t" b/PULL_REQUEST_TEMPLATE.md similarity index 65% rename from "PULL_REQUEST_TEMPLATE.md\t" rename to PULL_REQUEST_TEMPLATE.md index 9a4d861..0de3a8a 100644 --- "a/PULL_REQUEST_TEMPLATE.md\t" +++ b/PULL_REQUEST_TEMPLATE.md @@ -2,11 +2,11 @@ Solución al reto 04 de Escuela de JavaScript -Nombre: -Usuario Platzi: +Nombre:Andres loaiza +Usuario Platzi:Andres Loaiza ## GRUPO -- [ ] Martes +- [x] Martes - [ ] Miercoles - [ ] Jueves @@ -14,4 +14,4 @@ Usuario Platzi: - [ ] Primer problema - [ ] Segundo problema - [ ] Tercer problema - - [ ] Cuarto Problema (Opcional) \ No newline at end of file + - [x] Cuarto Problema (Opcional) From 1a7c2a6372144310412867592d910b24431711c6 Mon Sep 17 00:00:00 2001 From: Andres Loaiza Date: Mon, 13 Jul 2020 07:48:08 -0500 Subject: [PATCH 2/2] ADD-MyCommit --- README.md | 2 +- package.json | 8 +- src/index.js | 237 +++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 238 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 35d54ca..de26784 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Reto 2 : Curso de Profesional de JavaScript ``` npm run start -``` +``` ### Primer problema Crea una función llamada "randomTime" que te permita retornar un valor en mili segundos de forma aleatoria en el rango de 1000ms hasta 8000ms. diff --git a/package.json b/package.json index bf060d5..73a35d9 100644 --- a/package.json +++ b/package.json @@ -20,5 +20,9 @@ "bugs": { "url": "https://github.com/platzi/escuelajs-reto-04/issues" }, - "homepage": "https://github.com/platzi/escuelajs-reto-04#readme" -} \ No newline at end of file + "homepage": "https://github.com/platzi/escuelajs-reto-04#readme", + "dependencies": { + "xmlhttprequest": "^1.8.0" + }, + "devDependencies": {} +} diff --git a/src/index.js b/src/index.js index 4c965e7..893378d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,11 +1,32 @@ + +function devueltos() +{ + var primero=Math.floor(Math.random()*(1000-800))+800; + var segundo=Math.floor(Math.random()*(1000-800))+800; + return rango(primero,segundo) +} + + +function rango(max,min) +{ + const resultado=Math.floor(Math.random()*(max-min))+min; + + return resultado; +} + const orders = (time, product, table) => { - console.log(`### Orden: ${product} para ${table}`); + + // console.log(`### Orden: ${product} para ${table}`); + return new Promise((resolve, reject) => { setTimeout(() => { resolve(`=== Pedido servido: ${product}, tiempo de preparación ${time}ms para la ${table}`); + reject(`erro en la consulta`); ; }, time); + }); -} + +} const menu = { hamburger: 'Combo Hamburguesa', @@ -15,10 +36,214 @@ const menu = { const table = ['Mesa 1', 'Mesa 2', 'Mesa 3', 'Mesa 4', 'Mesa 5']; -const waiter = () => { - orders(6000, menu.hamburger, table[3]) - .then((res) => console.log(res)) +const waiter = (devueltos) => { + + + + var principal=[]; + var comida1=[]; + + + orders(devueltos[0], menu.hotdog, table[1]) + .then((res) => { + console.log(res); + comida1.push(menu.hotdog); + return orders(devueltos[0], menu.pizza, table[1]); + }) + .then((res) => { + console.log(res); + comida1.push(menu.pizza,'mesa2',parseInt(devueltos[0])); + principal.push(comida1); + comida1=[]; + return orders(devueltos[1], menu.hamburger, table[3]); + }) + + .then((res) => { + console.log(res); + comida1.push(menu.hamburger); + return orders(devueltos[1], menu.hotdog, table[3]); + }) + .then((res) => { + console.log(res); + comida1.push(menu.hotdog,'mesa4',parseInt(devueltos[1])); + principal.push(comida1); + comida1=[]; + return orders(devueltos[2], menu.pizza, table[4]); + }) + .then((res) => { + console.log(res); + comida1.push(menu.pizza); + return orders(devueltos[2], menu.hotdog, table[4]); + }) + .then((res)=> + { + console.log(res); + comida1.push(menu.hotdog,'mesa5',parseInt(devueltos[2])); + principal.push(comida1); + + }) + .then((res) => { + let resultado= Math.max(parseInt(devueltos[0]),parseInt(devueltos[1]),parseInt(devueltos[2])); + for(var a=0;a { + //devueltos es el objeto que contiene el tiempo + // principal es el objeto que contiene los array multimencional + // y cada array contiene la comida de cada mesas + let resultado1= Math.max(parseInt(devueltos[0]),parseInt(devueltos[1])); + + for(var a=0;a { + resultado= parseInt(devueltos[0]); + for(var q=0;q console.error(err)); }; +function waiter2() +{ + var numero=[]; + for(var z=0;z<3;z++) + { + numero.push(devueltos()) + } + // waiter es donde estan las promesas encadenadas + waiter(numero); + + + // var tiempo=devueltos() + +} +async function waiter3() +{ + var ids=[1] + var promesas=ids.map(id=> + { + return waiter2() + }) + + try{ + var personajes= await Promise.all(promesas); + //cuando devuelva las promesas guardela en la variable + //personajes y await funciona para que detenga el codigo hasta hay + // console.log(personajes); + } + catch(id) + { + onError(id) + } +} +function waiter4() +{ + + waiter3(); + +} +waiter4(); +const API= 'https://us-central1-escuelajs-api.cloudfunctions.net/orders'; + +var fetchOrders=API=> +{ + + return new Promise((resolve,reject)=>{ + setTimeout(()=>{ + const XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; + const xml = new XMLHttpRequest(); + xml.open("GET",API,true); + xml.send(); + xml.onreadystatechange=()=> + { + if(xml.readyState===4) + { + if(xml.status==200) + { + var resultado=JSON.parse(xml.responseText); + return resolve(resultado); + } + else + { + return reject('error en la consulta'); + } + } + } + },4000) + }) + +} +function onError(id) +{ + console.log(id); +} +async function obtener_personasje() +{ + var ids=[1] + var promesas=ids.map(id=> + { + + fetchOrders(API) + + //aqui se puede colocar de esta forma, en la parte de abajo no funciono + .then((data1)=>{ + console.log(data1.data) ; + }) + }) + + try{ + // + var personajes = await Promise.all(promesas); + // la var personajes no funciona ya que no tiene ningun valor + + + + } + catch(id) + { + onError(id) + } +} -waiter(); +obtener_personasje(); \ No newline at end of file