You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/11-async/01-callbacks/article.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
# Introduzione: callbacks
4
4
5
-
Molte azioni in Javascript sono *asincrone*
5
+
Molte azioni in JavaScript sono *asincrone*
6
6
7
7
Per esempio, guardiamo la funzione `loadScript(src)`:
8
8
@@ -23,7 +23,7 @@ Possiamo usare la funzione in questo modo:
23
23
loadScript('/my/script.js');
24
24
```
25
25
26
-
La funzione è chiamata "asincronamente", perchè l'azione (il caricamento dello script) non finirà adesso ma in seguito.
26
+
La funzione è chiamata "asincronamente", perché l'azione (il caricamento dello script) non finirà adesso ma in seguito.
27
27
28
28
La chiamata alla funzione da inizio al caricamento dello script, poi l'esecuzione continua. Mentre lo script sta caricando, il codice sotto potrebbe finire l'esecuzione, e se il caricamento richiede tempo, anche altri script potrebbero venire eseguiti nel frattempo.
29
29
@@ -33,7 +33,7 @@ loadScript('/my/script.js');
33
33
// ...
34
34
```
35
35
36
-
Ora diciamo che vogliamo eseguire il nuovo script quando carica. Probabilmente dichierarà nuove funzioni, quindi vorremmo eseguirle.
36
+
Ora diciamo che vogliamo eseguire il nuovo script quando carica. Probabilmente dichiarerà nuove funzioni, quindi vorremmo eseguirle.
37
37
38
38
Ma se lo facciamo immediatamente dopo la chiamata `loadScript(…)` non funzionerebbe:
Questa è l'idea: il secondo argomento è una funzione (solitamente anonima) che viene eseguita quando l'azione è completata.
78
78
79
-
Ecco un'esempio eseguibile con un vero script:
79
+
Ecco unesempio eseguibile con un vero script:
80
80
81
81
```js run
82
82
functionloadScript(src, callback) {
@@ -220,7 +220,7 @@ Nel codice sopra:
220
220
2. Carichiamo `2.js`, poi se non ci sono errori.
221
221
3. Carichiamo `3.js`, poi se non ci sono errori -- facciamo qualcos'altro `(*)`.
222
222
223
-
Mano a mano che le chiamate diventano più annidate, il codice diventa più profondo e via via più complicato da gestire, specialmetne se abbiamo codice reale invece di `...`, che può includere più cicli, condizioni e così via.
223
+
Mano a mano che le chiamate diventano più annidate, il codice diventa più profondo e via via più complicato da gestire, specialmente se abbiamo codice reale invece di `...`, che può includere più cicli, condizioni e così via.
224
224
225
225
Questo viene chiamato "callback hell" o "pyramid of doom."
226
226
@@ -262,9 +262,9 @@ function step3(error, script) {
262
262
};
263
263
```
264
264
265
-
Visto? Fa la stessa cosa, e non ci sono annidamenti profondi perchè abbiamo reso ogni azione una funzione separata di primo livello.
265
+
Visto? Fa la stessa cosa, e non ci sono annidamenti profondi perché abbiamo reso ogni azione una funzione separata di primo livello.
266
266
267
-
Funziona ma il codice sembra un foglio di lavoro diviso. È difficile da leggere e probabilemnete hai notato che bisogna saltare con lo sguaroo tra i vari pezzi quando lo si legge. Non è conveniente, in particolare se il lettore non è familiare con il codice e non sa dove saltare con lo sguardo.
267
+
Funziona ma il codice sembra un foglio di lavoro diviso. È difficile da leggere e probabilmente hai notato che bisogna saltare con lo sguardo tra i vari pezzi quando lo si legge. Non è conveniente, in particolare se il lettore non è familiare con il codice e non sa dove saltare con lo sguardo.
268
268
269
269
Inoltre, le funzioni chiamate `step*` sono tutte usate una sola volta, sono create solo per evitare la "pyramid of doom." Nessuno le riutilizzerà al di fuori della catena di azioni. Quindi abbiamo un po' di inquinamento del namespace.
0 commit comments