Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*----------------------Sin Callbacks------------------------*/
- //problema:al imprimir el array, todavia no se ha pusheado el nuevo valor dentro de la funcion(simulacion ajax, en este caso settimeout)
- function agregaAlArray (data, array) {
- setTimeout(function() {
- array.push(data)
- }, 3000)
- }
- var array = [1, 2, 3]
- agregaAlArray(4, array)
- console.log(array)
- // [1, 2, 3] al instante, independiente de los segs. q le demos de delay, ya que pasa de largo la ejec del script
- /*------------------------Calbacks------------------------------*/
- // Solucion a lo anterior y esperar la ejecucion de una funcion para hacer otra cosa
- function toArray (data, array, callback) {
- if (!array) {
- return callback(new Error('No existe el array', null))
- }
- setTimeout(function() {
- array.push(data)
- callback(null, array)
- }, 1000)
- }
- var array2 = [1,2,3];
- toArray(4, array2, function (err) {
- if (err) return console.log(err.message)
- console.log(array2)
- })
- // (1 seg de delay)-> [1, 2, 3, 4]
- /*----------------------Callback Hell.-------------------------------*/
- function addToArray (data, array, callback) {
- if (!array) {
- return callback(new Error('No existe el array', null))
- }
- setTimeout(function() {
- array.push(data)
- callback(null, array)
- }, 2000)
- }
- var array3 = [1,2,3,4];
- addToArray(5, array3, function (err) {
- if (err) return console.log(err.message)
- console.log(array3)
- addToArray(6,array3,function(){
- if (err) return console.log(err.message)
- console.log(array3)
- saludar() //llamo a funcion externa para probar la secuencia o falsa "sincronia"
- })
- })
- // (2 seg de delay)-> [1, 2, 3, 4, 5]
- // (4 seg de delay)-> [1, 2, 3, 4, 5, 6]
- // (4 seg de delay)-> "hola mundo"
- /*-------------------------Promises-----------------------------*/
- // solucion a demasiados callbacks anidados(callback hell)
- function pushToArray (data, arreglo) {
- const promise = new Promise(function (resolve, reject) {
- setTimeout(function() {
- arreglo.push(data)
- resolve(arreglo)
- }, 5000);
- if (!arreglo) {
- reject(new Error('No existe un array'))
- }
- })
- return promise
- }
- const arreglo = [1, 2, 3]
- pushToArray(9, arreglo).then(function () {
- console.log(arreglo)
- })
- // (5 seg de delay)-> [1, 2, 3, 9]
- /*-----funcion de prueba para ser llamada dentro de un callback hell y probar lo secuencial que se requiere------------------*/
- var saludar = function(){
- console.log("hola mundo")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement