//junio del 2017
//es8 una manera de transformar un objeto a una matriz
const data = {
frontend: 'Adrian',
backend: 'Adranuz',
design: 'Vlady'
}
const entries = Object.entries(data) //objet to matriz
console.log(entries)
console.log(entries.length) //ya disponemos de .length
//es8
//valores de un objeto a un arreglo
const data = { //trailing comma
frontend: 'Adrian',
backend: 'Adranuz',
design: 'Vlady'
}
const values = Object.values(data) //object to array
console.log(values)
console.log(values.length)
//es8
//antemponer algo antes del string
const string = 'hello'
console.log(string.padStart(7, 'hi'))
console.log(string.padEnd(12, ' ------'))
console.log('food'.padEnd(12, ' -------'))
//es8
//la idea de helloWorld es que sea parecido a una peticion de una api,
//en lo que mandara la respuesta de la peticion despues de 3 segundos de habes sido hecha
const helloWorld = () => {
return new Promise((resolve, reject) => {
(true)
//setTimeout le da a la peticion sierto tiempo para responder
? setTimeout(() => resolve('Hello World'), 3000)
//si no se obtiene lo esperado manda de regreso error
: reject(new Error('Test Error'))
})
}
//aqui hacemos la peticion a la funcion de la promesa
const helloAsync = async () => { //se declara asincrona
const hello = await helloWorld()
console.log(hello)
}
helloAsync()
// aplicar async await correctamente
const anotherFunction = async () => {
try {
const hello = await helloWorld()
console.log(hello)
} catch (error) {
console.log(error)
}
}
anotherFunction()
// promesas + async await
async function getAllUserInfo(id) {
const user = await fetch('api/user/' + id)
const userResponse = await Promise.all(user.links.map(link => fetch(link)))
const userData = await Promise.all(userResponse.map(response => response.json()))
return userData
}