Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. /*----------------------Sin Callbacks------------------------*/
  2. //problema:al imprimir el array, todavia no se ha pusheado el nuevo valor dentro de la funcion(simulacion ajax, en este caso settimeout)
  3. function agregaAlArray (data, array) {
  4. setTimeout(function() {
  5. array.push(data)
  6. }, 3000)
  7. }
  8. var array = [1, 2, 3]
  9. agregaAlArray(4, array)
  10. console.log(array)
  11. // [1, 2, 3] al instante, independiente de los segs. q le demos de delay, ya que pasa de largo la ejec del script
  12.  
  13.  
  14.  
  15. /*------------------------Calbacks------------------------------*/
  16. // Solucion a lo anterior y esperar la ejecucion de una funcion para hacer otra cosa
  17. function toArray (data, array, callback) {
  18. if (!array) {
  19. return callback(new Error('No existe el array', null))
  20. }
  21. setTimeout(function() {
  22. array.push(data)
  23. callback(null, array)
  24. }, 1000)
  25. }
  26.  
  27. var array2 = [1,2,3];
  28. toArray(4, array2, function (err) {
  29. if (err) return console.log(err.message)
  30. console.log(array2)
  31. })
  32. // (1 seg de delay)-> [1, 2, 3, 4]
  33.  
  34.  
  35.  
  36. /*----------------------Callback Hell.-------------------------------*/
  37.  
  38. function addToArray (data, array, callback) {
  39. if (!array) {
  40. return callback(new Error('No existe el array', null))
  41. }
  42. setTimeout(function() {
  43. array.push(data)
  44. callback(null, array)
  45. }, 2000)
  46. }
  47.  
  48. var array3 = [1,2,3,4];
  49.  
  50. addToArray(5, array3, function (err) {
  51. if (err) return console.log(err.message)
  52. console.log(array3)
  53. addToArray(6,array3,function(){
  54. if (err) return console.log(err.message)
  55. console.log(array3)
  56. saludar() //llamo a funcion externa para probar la secuencia o falsa "sincronia"
  57. })
  58. })
  59. // (2 seg de delay)-> [1, 2, 3, 4, 5]
  60. // (4 seg de delay)-> [1, 2, 3, 4, 5, 6]
  61. // (4 seg de delay)-> "hola mundo"
  62.  
  63.  
  64. /*-------------------------Promises-----------------------------*/
  65. // solucion a demasiados callbacks anidados(callback hell)
  66. function pushToArray (data, arreglo) {
  67. const promise = new Promise(function (resolve, reject) {
  68. setTimeout(function() {
  69. arreglo.push(data)
  70. resolve(arreglo)
  71. }, 5000);
  72.  
  73. if (!arreglo) {
  74. reject(new Error('No existe un array'))
  75. }
  76. })
  77.  
  78. return promise
  79. }
  80.  
  81. const arreglo = [1, 2, 3]
  82. pushToArray(9, arreglo).then(function () {
  83. console.log(arreglo)
  84. })
  85. // (5 seg de delay)-> [1, 2, 3, 9]
  86.  
  87.  
  88.  
  89.  
  90. /*-----funcion de prueba para ser llamada dentro de un callback hell y probar lo secuencial que se requiere------------------*/
  91. var saludar = function(){
  92. console.log("hola mundo")
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement