Skip to content

Commit f0947cf

Browse files
authored
Merge pull request #441 from joaquinelio/susy201113
Susy201113
2 parents fa5f4ec + d522e43 commit f0947cf

20 files changed

Lines changed: 46 additions & 43 deletions

File tree

1-js/06-advanced-functions/01-recursion/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ Podemos esbozarlo como:
132132
</li>
133133
</ul>
134134

135-
Ahí es cuando la función comienza a ejecutarse. La condición `n == 1` es falsa, por lo que el flujo continúa en la segunda rama de` if`:
135+
Ahí es cuando la función comienza a ejecutarse. La condición `n == 1` es falsa, por lo que el flujo continúa en la segunda rama de `if`:
136136

137137
```js run
138138
function pow(x, n) {

1-js/08-prototypes/01-prototype-inheritance/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ let rabbit = {
2727
};
2828

2929
*!*
30-
rabbit.__proto__ = animal;
30+
rabbit.__proto__ = animal; // establece rabbit.[[Prototype]] = animal
3131
*/!*
3232
```
3333

1-js/11-async/01-callbacks/article.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ loadScript('/my/script.js', function(script) {
144144
});
145145
*/!*
146146

147-
})
147+
});
148148

149149
});
150150
```
@@ -221,7 +221,7 @@ loadScript('1.js', function(error, script) {
221221
});
222222

223223
}
224-
})
224+
});
225225
}
226226
});
227227
```
@@ -279,7 +279,7 @@ loadScript('1.js', function(error, script) {
279279
}
280280
});
281281
}
282-
})
282+
});
283283
}
284284
});
285285
-->
@@ -319,7 +319,7 @@ function step3(error, script) {
319319
} else {
320320
// ...continua despues que se han cargado todos los scripts (*)
321321
}
322-
};
322+
}
323323
```
324324

325325
¿Lo Ves? Hace lo mismo, y ahora no hay anidamiento profundo porque convertimos cada acción en una función de nivel superior separada.

1-js/11-async/05-promise-api/article.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -176,15 +176,14 @@ Entonces para cada promesa obtendremos su estado y `value/error`.
176176
Si el browser no soporta `Promise.allSettled`, es fácil implementarlo:
177177
178178
```js
179-
if(!Promise.allSettled) {
180-
Promise.allSettled = function(promises) {
181-
return Promise.all(promises.map(p => Promise.resolve(p).then(value => ({
182-
status: 'fulfilled',
183-
value
184-
}), reason => ({
185-
status: 'rejected',
186-
reason
187-
}))));
179+
if (!Promise.allSettled) {
180+
const rejectHandler = reason => ({ status: 'rejected', reason });
181+
182+
const resolveHandler = value => ({ status: 'fulfilled', value });
183+
184+
Promise.allSettled = function (promises) {
185+
const convertedPromises = promises.map(p => Promise.resolve(p).then(resolveHandler, rejectHandler));
186+
return Promise.all(convertedPromises);
188187
};
189188
}
190189
```

1-js/11-async/06-promisify/article.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,16 @@ function loadScript(src, callback) {
2525

2626
Vamos a promisificarla. La función nueva `loadScriptPromise(src)` va a hacer lo mismo, pero solo acepta `src` (sin callback) y retorna una promesa.
2727

28+
Aquí:
2829
```js
2930
let loadScriptPromise = function(src) {
3031
return new Promise((resolve, reject) => {
3132
loadScript(src, (err, script) => {
32-
if (err) reject(err)
33+
if (err) reject(err);
3334
else resolve(script);
3435
});
35-
})
36-
}
36+
});
37+
};
3738

3839
// uso:
3940
// loadScriptPromise('path/script.js').then(...)
@@ -66,7 +67,7 @@ function promisify(f) {
6667
f.call(this, ...args); // llama a la función original
6768
});
6869
};
69-
};
70+
}
7071

7172
// uso:
7273
let loadScriptPromise = promisify(loadScript);
@@ -98,11 +99,11 @@ function promisify(f, manyArgs = false) {
9899
f.call(this, ...args);
99100
});
100101
};
101-
};
102+
}
102103

103104
// Uso:
104105
f = promisify(f, true);
105-
f(...).then(arrayOfResults => ..., err => ...)
106+
f(...).then(arrayOfResults => ..., err => ...);
106107
```
107108
En algunos casos, puede que `err` esté ausente: `callback(result)`, o que haya algo que no es habitual en el formato del callback, por lo que tendremos que promisificar tales funciones manualmente.
108109

1-js/11-async/08-async-await/01-rewrite-async/task.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ function loadJson(url) {
1212
} else {
1313
throw new Error(response.status);
1414
}
15-
})
15+
});
1616
}
1717

1818
loadJson('no-such-user.json')

1-js/11-async/08-async-await/02-rewrite-async-2/task.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# Reescribir "rethrow" con async/await
33

4-
Debajo puedes encontrar el ejemplo "rethrow" del capítulo <info:promise-chaining>. Rescríbelo usando `async/await` en vez de `.then/catch`.
4+
Debajo puedes encontrar el ejemplo "rethrow". Rescríbelo usando `async/await` en vez de `.then/catch`.
55

66
Y deshazte de la recursión en favor de un bucle en `demoGithubUser`: con `async/await`, que se vuelve fácil de hacer.
77

@@ -22,7 +22,7 @@ function loadJson(url) {
2222
} else {
2323
throw new HttpError(response);
2424
}
25-
})
25+
});
2626
}
2727

2828
// Pide nombres hasta que github devuelve un usuario válido

1-js/11-async/08-async-await/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class Thenable {
156156
// resuelve con this.num*2 después de 1000ms
157157
setTimeout(() => resolve(this.num * 2), 1000); // (*)
158158
}
159-
};
159+
}
160160
161161
async function f() {
162162
// espera durante 1 segundo, entonces el resultado se vuelve 2

1-js/12-generators-iterators/2-async-iterators-generators/article.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,9 +363,9 @@ Explayando más sobre cómo funciona:
363363
- La URL inicial es `https://api.github.com/repos/<repo>/commits`, y la siguiente página estará en la cabecera de `Link` de la respuesta.
364364
- El método `fetch` nos permite suministrar autorización y otras cabeceras si lo necesitamos, aquí GitHub requiere `User-Agent`.
365365
2. Los commits son devueltos en formato JSON.
366-
3. Deberíamos obtener la siguiente URL de la página del `enlace` en el encabezado de la respuesta. Esto tiene un formato especial, por lo que usamos una expresión regular para eso.
366+
3. Deberíamos obtener la siguiente URL de la página del `enlace` en el encabezado de la respuesta. Esto tiene un formato especial, por lo que usamos una expresión regular para eso (aprenderemos esta característica en [Regular expressions](info:regular-expressions)).
367367
- La URL de la página siguiente puede verse así `https://api.github.com/repositories/93253246/commits?page=2`. Eso es generado por el propio Github.
368-
4. Luego entregamos todas las confirmaciones recibidas, y cuando finalizan, se activará la siguiente iteración `while(url)` haciendo una solicitud más.
368+
4. Luego entregamos uno por uno todos los "commit" recibidos y, cuando finalizan, se activará la siguiente iteración `while(url)` haciendo una solicitud más.
369369

370370
Un ejemplo de uso (muestra autores de commit en la consola):
371371

1-js/13-modules/01-modules-intro/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ Abajo compare con un script normal:
260260
261261
<script>
262262
*!*
263-
alert(typeof button); // Error: button es indefinido, el script no puede ver los elementos de abjo
263+
alert(typeof button); // button es indefinido, el script no puede ver los elementos de abajo
264264
*/!*
265265
// los scripts normales corren inmediatamente, antes que el resto de la página sea procesada
266266
</script>

0 commit comments

Comments
 (0)