﻿1
00:00:01,500 --> 00:00:03,600
‫Istruttore: In questo video, promettiamo

2
00:00:03,600 --> 00:00:06,680
‫le funzioni di lettura e scrittura del file.

3
00:00:06,680 --> 00:00:09,440
‫Ciò significa che li faremo in modo

4
00:00:09,440 --> 00:00:11,230
‫che restituiscano le promesse

5
00:00:11,230 --> 00:00:14,383
‫invece di passare loro una funzione di callback.

6
00:00:16,180 --> 00:00:19,156
‫Quindi, se lo desideri, è fondamentalmente una funzione di lettura

7
00:00:19,156 --> 00:00:20,890
‫del file che restituisce una

8
00:00:20,890 --> 00:00:24,300
‫promessa e che riceve solo un nome di file, nessuna richiamata.

9
00:00:24,300 --> 00:00:26,023
‫Quindi facciamo esattamente questo.

10
00:00:28,530 --> 00:00:33,530
‫Quindi, creeremo una funzione di lettura file pro.

11
00:00:34,110 --> 00:00:36,380
‫Quindi pro per la promessa perché restituisce

12
00:00:36,380 --> 00:00:37,970
‫di nuovo una promessa.

13
00:00:37,970 --> 00:00:40,270
‫E poi tutto ciò che facciamo è

14
00:00:41,590 --> 00:00:44,713
‫passare il nome del file e, come dicevamo, restituire una promessa.

15
00:00:46,060 --> 00:00:49,570
‫Quindi, restituisci una nuova promessa.

16
00:00:49,570 --> 00:00:52,150
‫Quindi usiamo qui il costruttore di

17
00:00:52,150 --> 00:00:55,540
‫promesse che è stato introdotto nel linguaggio con ES6.

18
00:00:55,540 --> 00:00:58,600
‫Quindi prima di ES6 come ES5, ES4

19
00:00:58,600 --> 00:01:00,030
‫e tutte le

20
00:01:00,030 --> 00:01:03,820
‫versioni precedenti, non c'era supporto per le promesse in JavaScript.

21
00:01:03,820 --> 00:01:05,670
‫Ma l'hanno cambiato in ES6

22
00:01:05,670 --> 00:01:08,660
‫e hanno reso la lingua molto migliore in questo senso.

23
00:01:08,660 --> 00:01:12,010
‫Quindi, per quanto riguarda JavaScript asincrono.

24
00:01:12,010 --> 00:01:14,350
‫Ora questo costruttore di promesse

25
00:01:14,350 --> 00:01:17,400
‫qui contiene una cosiddetta funzione di esecuzione,

26
00:01:17,400 --> 00:01:20,980
‫che verrà chiamata immediatamente quando viene creata la promessa.

27
00:01:20,980 --> 00:01:24,450
‫E questa funzione accetterà due argomenti, quindi

28
00:01:24,450 --> 00:01:26,363
‫risolvi e rifiuta.

29
00:01:28,330 --> 00:01:30,370
‫Quindi risolvi e rifiuta,

30
00:01:30,370 --> 00:01:32,770
‫ma per ora non preoccuparti per

31
00:01:32,770 --> 00:01:35,020
‫loro, ne parleremo tra un minuto.

32
00:01:35,020 --> 00:01:38,550
‫Per ora concentriamoci solo su questa funzione di esecuzione

33
00:01:38,550 --> 00:01:41,470
‫stessa perché è qui che svolgiamo effettivamente

34
00:01:41,470 --> 00:01:43,450
‫tutto questo lavoro asincrono.

35
00:01:43,450 --> 00:01:46,430
‫In questo caso il file letto funziona.

36
00:01:46,430 --> 00:01:48,890
‫Quindi è qui che chiameremo fs. readfile con

37
00:01:51,040 --> 00:01:53,287
‫il nome del file

38
00:01:53,287 --> 00:01:57,270
‫passato e poi la consueta funzione di callback, okay.

39
00:01:57,270 --> 00:02:00,660
‫Quindi l'errore e i dati, proprio

40
00:02:00,660 --> 00:02:02,000
‫come prima.

41
00:02:02,000 --> 00:02:03,550
‫Quindi tieni presente che in

42
00:02:03,550 --> 00:02:06,200
‫realtà non stiamo cambiando la funzione di lettura

43
00:02:06,200 --> 00:02:07,997
‫file stiamo semplicemente creando una

44
00:02:07,997 --> 00:02:11,140
‫nuova funzione che dietro le quinte ovviamente esegue ancora la

45
00:02:11,140 --> 00:02:13,850
‫funzione di lettura file incorporata ma poi restituisce

46
00:02:13,850 --> 00:02:15,570
‫una promessa in modo che

47
00:02:15,570 --> 00:02:17,040
‫possiamo invece usare

48
00:02:17,040 --> 00:02:19,170
‫la promessa della funzione di callback.

49
00:02:19,170 --> 00:02:20,320
‫Va bene.

50
00:02:20,320 --> 00:02:22,630
‫Quindi abbiamo quella funzione di lettura del file

51
00:02:22,630 --> 00:02:24,270
‫qui che farà il

52
00:02:24,270 --> 00:02:27,250
‫suo lavoro e quando sarà pronta tornerà con i dati.

53
00:02:27,250 --> 00:02:29,070
‫Ed ora è qui che entrano

54
00:02:29,070 --> 00:02:31,510
‫in gioco le funzioni di risoluzione e di rifiuto.

55
00:02:31,510 --> 00:02:34,610
‫Poiché entrambi questi argomenti

56
00:02:34,610 --> 00:02:38,390
‫disponibili nella funzione executor sono entrambi funzioni.

57
00:02:38,390 --> 00:02:40,410
‫Ora la chiamata alla

58
00:02:40,410 --> 00:02:44,250
‫funzione di risoluzione segnerà sostanzialmente la promessa come riuscita e

59
00:02:44,250 --> 00:02:45,320
‫quindi come

60
00:02:45,320 --> 00:02:49,010
‫soddisfatta e restituirà il valore di successo dalla promessa.

61
00:02:49,010 --> 00:02:50,310
‫Quindi facciamolo davvero.

62
00:02:51,520 --> 00:02:55,270
‫Quindi chiamiamo risolvere con i dati.

63
00:02:55,270 --> 00:02:58,690
‫Quindi qualunque variabile passiamo alla funzione di risoluzione

64
00:02:58,690 --> 00:03:00,860
‫è ciò che sarà disponibile

65
00:03:00,860 --> 00:03:04,370
‫in seguito come argomento nel metodo then, va bene?

66
00:03:04,370 --> 00:03:07,310
‫Quindi questi dati qui saranno il

67
00:03:07,310 --> 00:03:10,550
‫valore che questa promessa ci restituisce, ok.

68
00:03:10,550 --> 00:03:12,930
‫Probabilmente suona un po' confuso, giusto?

69
00:03:12,930 --> 00:03:17,080
‫Quindi, di nuovo, qualunque cosa passiamo a questa funzione qui,

70
00:03:17,080 --> 00:03:18,840
‫alla funzione di

71
00:03:18,840 --> 00:03:20,690
‫risoluzione, è il risultato della

72
00:03:20,690 --> 00:03:23,590
‫promessa che sarà disponibile nel gestore then.

73
00:03:23,590 --> 00:03:24,700
‫Ora, d'altra parte,

74
00:03:24,700 --> 00:03:27,800
‫possiamo anche contrassegnare la promessa come rifiutata nel caso

75
00:03:27,800 --> 00:03:29,960
‫ci sia stato un errore, ok.

76
00:03:29,960 --> 00:03:31,230
‫E lo facciamo

77
00:03:31,230 --> 00:03:32,450
‫chiamando, come

78
00:03:32,450 --> 00:03:34,710
‫puoi immaginare, la funzione di rifiuto.

79
00:03:34,710 --> 00:03:36,390
‫Quindi, se c'è stato un errore

80
00:03:38,300 --> 00:03:40,530
‫e questo è simile a quello che abbiamo fatto prima.

81
00:03:40,530 --> 00:03:42,520
‫Quindi, se c'è stato un

82
00:03:42,520 --> 00:03:45,170
‫errore qui, chiama la funzione di rifiuto.

83
00:03:45,170 --> 00:03:47,770
‫E qualunque cosa passiamo a

84
00:03:47,770 --> 00:03:50,310
‫questo sarà l'errore che

85
00:03:50,310 --> 00:03:52,930
‫sarà successivamente disponibile nel metodo catch.

86
00:03:52,930 --> 00:03:54,810
‫Quindi, in questo qui.

87
00:03:54,810 --> 00:03:56,110
‫Va bene?

88
00:03:56,110 --> 00:03:58,673
‫Quindi passiamo solo una stringa qui,

89
00:04:00,200 --> 00:04:05,060
‫non sono riuscito a trovare quel file, qualche emoji qui forse

90
00:04:05,060 --> 00:04:08,480
‫per farlo apparire un po' di più nella

91
00:04:08,480 --> 00:04:11,030
‫nostra console. log, va bene?

92
00:04:11,030 --> 00:04:11,993
‫E, ok.

93
00:04:11,993 --> 00:04:14,070
‫In realtà è già così.

94
00:04:14,070 --> 00:04:15,940
‫Quindi, rivediamo questo qui di nuovo.

95
00:04:15,940 --> 00:04:17,850
‫Quindi abbiamo creato un

96
00:04:17,850 --> 00:04:21,080
‫nuovo file, lì dentro passeremo il nome del file.

97
00:04:21,080 --> 00:04:22,200
‫Quindi questo argomento.

98
00:04:22,200 --> 00:04:25,580
‫E tutto ciò che facciamo qui è restituire questa promessa.

99
00:04:25,580 --> 00:04:29,160
‫Questa promessa include una funzione di esecuzione, quindi

100
00:04:29,160 --> 00:04:30,560
‫questa qui,

101
00:04:30,560 --> 00:04:34,040
‫che è dove svolgiamo il nostro lavoro asincrono.

102
00:04:34,040 --> 00:04:36,110
‫In tal caso qui ovviamente questo è il nostro

103
00:04:36,110 --> 00:04:36,943
‫fs. file di lettura.

104
00:04:38,500 --> 00:04:41,250
‫Quindi, se otteniamo i nostri dati in modo corretto,

105
00:04:41,250 --> 00:04:42,810
‫chiamiamo la funzione di

106
00:04:42,810 --> 00:04:44,950
‫risoluzione con il valore di risoluzione.

107
00:04:44,950 --> 00:04:46,290
‫E se c'è

108
00:04:46,290 --> 00:04:49,040
‫un errore chiamiamo la funzione di rifiuto, ok?

109
00:04:49,040 --> 00:04:52,560
‫E quindi ora usiamolo in pratica.

110
00:04:52,560 --> 00:04:55,030
‫Leggi file pro, passiamo il

111
00:04:55,030 --> 00:04:57,490
‫nome del nostro file.

112
00:04:57,490 --> 00:04:58,890
‫Quindi questo è ovviamente

113
00:05:00,020 --> 00:05:01,300
‫e basta.

114
00:05:01,300 --> 00:05:03,460
‫Quindi questo ora restituirà una promessa.

115
00:05:03,460 --> 00:05:04,980
‫E così, proprio come

116
00:05:04,980 --> 00:05:08,203
‫prima, possiamo usare il nostro metodo then su questo.

117
00:05:11,670 --> 00:05:14,930
‫Ok, quindi questo argomento dei dati qui sarà esattamente ciò

118
00:05:14,930 --> 00:05:17,890
‫che abbiamo restituito dalla promessa nel caso in

119
00:05:17,890 --> 00:05:19,510
‫cui abbia avuto successo.

120
00:05:19,510 --> 00:05:21,540
‫Quindi, con questa determinazione.

121
00:05:21,540 --> 00:05:23,740
‫Quindi in questo momento la

122
00:05:23,740 --> 00:05:25,540
‫nostra cartella del cane

123
00:05:25,540 --> 00:05:29,440
‫qui contiene labrador e quindi questi dati qui saranno labrador.

124
00:05:29,440 --> 00:05:31,280
‫E quindi questo è poi disponibile nel

125
00:05:31,280 --> 00:05:32,737
‫nostro gestore di allora qui.

126
00:05:32,737 --> 00:05:36,230
‫Ma ovviamente non ha bisogno di avere lo stesso

127
00:05:36,230 --> 00:05:38,670
‫nome, potrei anche chiamarlo come risultato

128
00:05:38,670 --> 00:05:41,300
‫o qualcosa che non importa, va bene?

129
00:05:41,300 --> 00:05:44,080
‫Ok, ora prendiamo tutto questo e

130
00:05:44,920 --> 00:05:46,463
‫mettiamolo qui.

131
00:05:48,270 --> 00:05:49,103
‫Va bene.

132
00:05:49,103 --> 00:05:52,000
‫Sbarazzati di tutto questo, salvalo e

133
00:05:52,000 --> 00:05:53,720
‫questo lo eseguirà.

134
00:05:53,720 --> 00:05:55,520
‫Ora riceviamo quell'errore qui, quindi i

135
00:05:55,520 --> 00:05:57,100
‫dati non sono definiti.

136
00:05:57,100 --> 00:05:59,480
‫Questo perché l'ho cambiato qui in un risultato.

137
00:05:59,480 --> 00:06:02,210
‫Quindi torniamo indietro e cambiamolo in dati perché qui

138
00:06:02,210 --> 00:06:03,270
‫abbiamo dati e qui

139
00:06:03,270 --> 00:06:04,300
‫abbiamo dati

140
00:06:04,300 --> 00:06:06,610
‫e quindi in questo modo non devo

141
00:06:06,610 --> 00:06:09,210
‫andare avanti e cambiare tutti questi nomi di variabili.

142
00:06:09,210 --> 00:06:10,690
‫Dagli un altro salvataggio

143
00:06:10,690 --> 00:06:12,080
‫e ci siamo.

144
00:06:12,080 --> 00:06:13,460
‫Quindi ha funzionato, vedi?

145
00:06:13,460 --> 00:06:15,150
‫In realtà abbiamo ottenuto la

146
00:06:15,150 --> 00:06:16,720
‫razza, che è

147
00:06:16,720 --> 00:06:19,870
‫ancora labrador e questa volta dalla nostra promessa, ok.

148
00:06:19,870 --> 00:06:21,150
‫Quindi, questo ha funzionato davvero.

149
00:06:21,150 --> 00:06:23,290
‫Quindi la nostra funzione read file

150
00:06:23,290 --> 00:06:24,890
‫pro ora restituisce

151
00:06:24,890 --> 00:06:29,890
‫una promessa e quei dati qui sono quindi disponibili sul nostro gestore di allora.

152
00:06:29,910 --> 00:06:31,660
‫Ottimo, quindi funziona già e

153
00:06:31,660 --> 00:06:33,110
‫possiamo renderlo molto migliore

154
00:06:33,110 --> 00:06:33,943
‫e

155
00:06:33,943 --> 00:06:36,487
‫lo faremo, ma per ora voglio anche

156
00:06:36,487 --> 00:06:39,170
‫promettere questa funzione di scrittura del file qui.

157
00:06:39,170 --> 00:06:40,580
‫Quindi, in pratica, fai lo stesso

158
00:06:40,580 --> 00:06:42,520
‫che abbiamo fatto con la funzione di lettura del file.

159
00:06:42,520 --> 00:06:45,110
‫Ora, se conosci già un po'

160
00:06:45,110 --> 00:06:49,000
‫di no js, forse stai pensando che in realtà esiste un

161
00:06:49,000 --> 00:06:52,090
‫nodo funzione che promette automaticamente funzioni per noi.

162
00:06:52,090 --> 00:06:54,300
‫Ma ovviamente volevo mostrarti qui come

163
00:06:54,300 --> 00:06:56,130
‫funzionano effettivamente le promesse e

164
00:06:56,130 --> 00:06:57,320
‫come le costruiamo

165
00:06:57,320 --> 00:07:01,270
‫ed è per questo che sto facendo tutto questo qui, ok.

166
00:07:01,270 --> 00:07:03,860
‫Quindi voglio davvero che tu impari a conoscere le promesse,

167
00:07:03,860 --> 00:07:05,410
‫non solo come le consumiamo,

168
00:07:05,410 --> 00:07:06,710
‫ma anche come costruirle.

169
00:07:06,710 --> 00:07:08,733
‫Ed è per questo che lo sto facendo in questo modo.

170
00:07:11,170 --> 00:07:14,913
‫Quindi, scrivi file e come promessa.

171
00:07:16,720 --> 00:07:19,460
‫E questo in realtà non ha solo bisogno del nome

172
00:07:19,460 --> 00:07:22,993
‫del file, ma anche dei dati che dovrebbero essere scritti su quel file.

173
00:07:25,350 --> 00:07:27,460
‫Ma poi la logica qui è abbastanza simile.

174
00:07:27,460 --> 00:07:30,253
‫Quindi, di nuovo, restituiamo una nuova promessa,

175
00:07:31,760 --> 00:07:34,230
‫all'interno abbiamo la nostra funzione esecutrice

176
00:07:34,230 --> 00:07:37,823
‫che accetta la risoluzione e il rifiuto come argomento.

177
00:07:39,090 --> 00:07:40,470
‫E questi sono

178
00:07:40,470 --> 00:07:41,860
‫nomi standard, quindi risolvi

179
00:07:41,860 --> 00:07:44,000
‫e rifiuta, potresti chiamarli come volevi veramente,

180
00:07:44,000 --> 00:07:46,463
‫ma questo è un po' lo standard, ok.

181
00:07:47,780 --> 00:07:48,613
‫Quindi fs,

182
00:07:50,211 --> 00:07:51,044
‫scrivi

183
00:07:52,870 --> 00:07:54,390
‫file, passiamo il file,

184
00:07:54,390 --> 00:07:57,523
‫i dati e poi la funzione di callback.

185
00:07:58,580 --> 00:08:01,260
‫E ora qualcosa di molto simile a prima,

186
00:08:01,260 --> 00:08:02,800
‫quindi se c'è

187
00:08:02,800 --> 00:08:05,570
‫stato un errore, chiama la funzione di rifiuto

188
00:08:05,570 --> 00:08:07,473
‫e passa lì un messaggio.

189
00:08:10,550 --> 00:08:12,340
‫Impossibile scrivere il file,

190
00:08:12,340 --> 00:08:16,060
‫di nuovo con questa emoji qui per farlo risaltare un

191
00:08:16,060 --> 00:08:18,870
‫po' di più e nel caso in cui

192
00:08:18,870 --> 00:08:20,830
‫tutto funzionasse bene, allora risolvi.

193
00:08:20,830 --> 00:08:24,960
‫Ora non abbiamo nessun dato da passare qui, giusto?

194
00:08:24,960 --> 00:08:27,940
‫Quindi passeremo in qualche stringa casuale

195
00:08:27,940 --> 00:08:30,920
‫qualcosa come dire successo, ok.

196
00:08:30,920 --> 00:08:32,770
‫Quindi una promessa

197
00:08:32,770 --> 00:08:36,000
‫non deve sempre restituire un valore significativo.

198
00:08:36,000 --> 00:08:38,060
‫In questo caso, tutto ciò che stiamo

199
00:08:38,060 --> 00:08:39,030
‫veramente cercando di

200
00:08:39,030 --> 00:08:42,340
‫fare qui è scrivere un file che non restituisce realmente un valore significativo.

201
00:08:42,340 --> 00:08:46,290
‫Quindi ora siamo pronti per usare questa funzione promessa, ma

202
00:08:46,290 --> 00:08:47,280
‫prima

203
00:08:47,280 --> 00:08:49,640
‫di farlo, implementiamo effettivamente il concatenamento

204
00:08:49,640 --> 00:08:51,750
‫di cui ti parlavo prima.

205
00:08:51,750 --> 00:08:52,780
‫Quindi

206
00:08:52,780 --> 00:08:56,170
‫in questo momento abbiamo ancora callback all'interno di

207
00:08:56,170 --> 00:08:58,290
‫callback all'interno di callback, giusto?

208
00:08:58,290 --> 00:08:59,550
‫Quindi abbiamo questo,

209
00:08:59,550 --> 00:09:00,930
‫che ha questo callback.

210
00:09:00,930 --> 00:09:03,800
‫E poi lì dentro c'è un altro gestore

211
00:09:03,800 --> 00:09:06,470
‫che ha ancora un altro callback.

212
00:09:06,470 --> 00:09:09,230
‫Quindi questo non cambia davvero nulla, vero?

213
00:09:09,230 --> 00:09:12,697
‫Invece vogliamo concatenare questi gestori qui.

214
00:09:12,697 --> 00:09:14,090
‫E il segreto per

215
00:09:14,090 --> 00:09:17,670
‫farlo è far sì che ogni gestore restituisca una nuova promessa.

216
00:09:17,670 --> 00:09:19,280
‫Allora come lo faremo?

217
00:09:19,280 --> 00:09:24,280
‫Bene, ricorda che questa funzione qui restituisce una promessa.

218
00:09:24,760 --> 00:09:26,230
‫E quindi tutto ciò che

219
00:09:26,230 --> 00:09:29,290
‫dobbiamo fare è restituire quella promessa da questo prima e poi gestore.

220
00:09:29,290 --> 00:09:30,490
‫Lascia che te lo mostri.

221
00:09:32,370 --> 00:09:35,260
‫Quindi diciamo ritorno superagente. prendi e poi

222
00:09:35,260 --> 00:09:38,630
‫la stringa e ora è una promessa, ok.

223
00:09:38,630 --> 00:09:41,920
‫E poi chiudiamo effettivamente questa funzione di

224
00:09:41,920 --> 00:09:46,520
‫callback qui e concateniamo questo metodo then direttamente su di esso.

225
00:09:46,520 --> 00:09:49,400
‫Salvalo, ora abbiamo qualche errore qui e

226
00:09:49,400 --> 00:09:51,830
‫questo è sulla riga 40.

227
00:09:51,830 --> 00:09:53,780
‫Sbarazziamoci di questo qui e

228
00:09:53,780 --> 00:09:54,913
‫va bene.

229
00:09:55,760 --> 00:09:57,730
‫Ha cambiato di nuovo la formattazione qui

230
00:09:57,730 --> 00:09:59,200
‫per noi che era

231
00:09:59,200 --> 00:10:02,700
‫più carina e quindi in realtà lo abbiamo già fatto funzionare qui.

232
00:10:02,700 --> 00:10:04,420
‫Allora perché funziona di nuovo?

233
00:10:04,420 --> 00:10:06,800
‫Bene, ovviamente questa funzione che abbiamo

234
00:10:06,800 --> 00:10:09,130
‫creato all'inizio restituisce una promessa.

235
00:10:09,130 --> 00:10:11,840
‫Quindi su questo possiamo usare il metodo then.

236
00:10:11,840 --> 00:10:14,440
‫Quindi facciamo in modo che questa funzione di callback che

237
00:10:14,440 --> 00:10:16,690
‫è in essa restituisca nuovamente una promessa.

238
00:10:16,690 --> 00:10:18,530
‫E così possiamo concatenare

239
00:10:18,530 --> 00:10:21,150
‫il successivo e poi il gestore su quello.

240
00:10:21,150 --> 00:10:22,860
‫Quindi questa variabile

241
00:10:22,860 --> 00:10:25,760
‫di risultato qui sarà quindi il valore

242
00:10:25,760 --> 00:10:29,170
‫risolto di questa promessa restituita dal gestore precedente, ok?

243
00:10:29,170 --> 00:10:30,750
‫Ha senso?

244
00:10:30,750 --> 00:10:33,020
‫Ora, per fare un ulteriore passo

245
00:10:33,020 --> 00:10:33,990
‫avanti, andremo

246
00:10:33,990 --> 00:10:38,423
‫avanti e utilizzeremo anche qui la nostra funzione di scrittura file pro.

247
00:10:39,350 --> 00:10:41,980
‫E poiché vogliamo continuare a concatenare i metodi then,

248
00:10:41,980 --> 00:10:44,190
‫lo restituiremo di nuovo in realtà.

249
00:10:44,190 --> 00:10:48,163
‫Quindi ritorna, scrivi file pro pass nel nome

250
00:10:50,420 --> 00:10:53,513
‫del file, che è questo, i

251
00:10:55,840 --> 00:10:57,070
‫dati ...

252
00:11:00,210 --> 00:11:01,360
‫Ed è proprio così.

253
00:11:03,460 --> 00:11:06,600
‫Ok, quindi non abbiamo più bisogno di tutto questo

254
00:11:06,600 --> 00:11:08,250
‫qui, commentiamolo per ora.

255
00:11:09,880 --> 00:11:11,650
‫Sbarazzati di questo spazio

256
00:11:11,650 --> 00:11:14,973
‫qui e poi là possiamo incatenare il successivo quindi gestore.

257
00:11:16,010 --> 00:11:18,230
‫Allora, e ricorda che

258
00:11:18,230 --> 00:11:21,950
‫qui dentro non avevamo alcun valore risolto significativo.

259
00:11:21,950 --> 00:11:24,240
‫Quindi, non vogliamo alcun

260
00:11:24,240 --> 00:11:26,580
‫argomento per questa funzione di callback

261
00:11:26,580 --> 00:11:31,433
‫qui, tutto ciò che vogliamo fare è registrare questa stringa, giusto?

262
00:11:32,640 --> 00:11:34,970
‫Quindi ora possiamo davvero liberarci di

263
00:11:36,450 --> 00:11:37,920
‫questo e okay.

264
00:11:37,920 --> 00:11:39,490
‫Quindi, quaggiù vediamo ora

265
00:11:39,490 --> 00:11:41,090
‫che in realtà sta già funzionando.

266
00:11:41,090 --> 00:11:43,080
‫E ancora il trucco per

267
00:11:43,080 --> 00:11:46,050
‫essere in grado di concatenare tutti questi metodi qui

268
00:11:46,050 --> 00:11:49,360
‫è restituire una promessa prima di chiamare ciascuno di essi.

269
00:11:49,360 --> 00:11:52,360
‫Quindi questo qui ovviamente restituisce una promessa qui in modo

270
00:11:52,360 --> 00:11:55,320
‫che possiamo concatenare il metodo then su di esso.

271
00:11:55,320 --> 00:11:56,860
‫Quindi questo pezzo di codice

272
00:11:56,860 --> 00:11:58,110
‫qui restituirà una

273
00:11:58,110 --> 00:12:00,630
‫promessa e quindi possiamo usarlo su di esso.

274
00:12:00,630 --> 00:12:02,920
‫Quindi questo pezzo di codice restituirà

275
00:12:02,920 --> 00:12:07,320
‫una promessa e quindi possiamo usarlo di nuovo su di esso, ok?

276
00:12:07,320 --> 00:12:09,010
‫Quindi questo è il segreto.

277
00:12:09,010 --> 00:12:10,380
‫Salvalo di nuovo

278
00:12:10,380 --> 00:12:13,500
‫e così quaggiù vediamo che la razza è ancora labrador.

279
00:12:13,500 --> 00:12:16,640
‫Vediamo che questo è il collegamento, andiamo

280
00:12:16,640 --> 00:12:19,180
‫qui e confermiamo che questo è

281
00:12:19,180 --> 00:12:21,300
‫davvero uguale a questo.

282
00:12:21,300 --> 00:12:26,050
‫E così ha scritto con successo la stringa nel file di

283
00:12:26,050 --> 00:12:30,717
‫testo usando la nostra funzione di scrittura file promessa, ok.

284
00:12:30,717 --> 00:12:34,240
‫E poi alla fine abbiamo questo gestore di errori.

285
00:12:34,240 --> 00:12:38,060
‫E la bellezza qui è che per tutte queste catene e

286
00:12:38,060 --> 00:12:39,430
‫poi gestori alla

287
00:12:39,430 --> 00:12:43,020
‫fine, abbiamo semplicemente bisogno di un singolo gestore di cattura.

288
00:12:43,020 --> 00:12:44,980
‫Quindi una funzione che

289
00:12:44,980 --> 00:12:48,910
‫gestisce gli errori provenienti da una delle tre promesse, ok.

290
00:12:48,910 --> 00:12:52,090
‫In realtà registriamo l'errore solo sulla console e

291
00:12:52,090 --> 00:12:53,900
‫proviamo, ad esempio,

292
00:12:53,900 --> 00:12:56,160
‫a modificare questo file qui.

293
00:12:56,160 --> 00:12:57,980
‫In realtà non il

294
00:12:57,980 --> 00:13:01,940
‫file, ma cambierò il nome del file qui, lo salverò

295
00:13:01,940 --> 00:13:06,150
‫e ora vediamo che non sono riuscito a trovare quel file.

296
00:13:06,150 --> 00:13:07,970
‫Quindi da dove viene?

297
00:13:07,970 --> 00:13:09,720
‫Viene proprio qui

298
00:13:09,720 --> 00:13:13,410
‫dalla chiamata alla funzione di rifiuto, ok?

299
00:13:13,410 --> 00:13:16,320
‫Quindi abbiamo un errore qui perché non siamo riusciti a trovare il

300
00:13:16,320 --> 00:13:18,890
‫file e quindi abbiamo chiamato la funzione di rifiuto.

301
00:13:18,890 --> 00:13:22,600
‫E quella funzione di rifiuto segnerà quindi questa promessa qui, quindi ricorda

302
00:13:23,850 --> 00:13:25,720
‫che questa è una promessa.

303
00:13:25,720 --> 00:13:27,780
‫Lo contrassegnerà come rifiutato.

304
00:13:27,780 --> 00:13:30,870
‫E quindi, viene chiamata la funzione catch.

305
00:13:30,870 --> 00:13:33,260
‫E quindi registriamo quell'errore sulla console.

306
00:13:33,260 --> 00:13:36,313
‫E il risultato è quello che puoi vedere quaggiù.

307
00:13:37,360 --> 00:13:40,830
‫Ok, rimettiamolo a posto ora

308
00:13:40,830 --> 00:13:41,900
‫funziona.

309
00:13:41,900 --> 00:13:43,920
‫Ora entriamo nel file, creiamo

310
00:13:43,920 --> 00:13:45,880
‫un cane che non esiste

311
00:13:50,010 --> 00:13:54,320
‫e ora, oh, qui abbiamo questo grosso errore strano ed è perché

312
00:13:54,320 --> 00:13:57,583
‫stiamo semplicemente registrando l'intero errore e non il messaggio

313
00:13:57,583 --> 00:14:00,700
‫di errore come stavamo facendo prima ma non

314
00:14:00,700 --> 00:14:01,723
‫non importa.

315
00:14:03,500 --> 00:14:05,203
‫Ora salvalo qui ora, rimettilo

316
00:14:06,170 --> 00:14:07,220
‫a posto

317
00:14:07,220 --> 00:14:08,500
‫e va bene.

318
00:14:08,500 --> 00:14:10,210
‫Quindi ora funziona tutto e

319
00:14:10,210 --> 00:14:12,510
‫ci siamo sbarazzati di quella forma triangolare

320
00:14:12,510 --> 00:14:14,040
‫che avevamo nel

321
00:14:14,040 --> 00:14:18,420
‫nostro codice e ora abbiamo una cosiddetta struttura piatta delle promesse a catena.

322
00:14:18,420 --> 00:14:20,600
‫Quindi di nuovo questo è molto

323
00:14:20,600 --> 00:14:23,150
‫più facile da gestire e spero che tu possa

324
00:14:23,150 --> 00:14:25,430
‫iniziare ad apprezzarlo ed è anche più

325
00:14:25,430 --> 00:14:28,120
‫logico pensare e ragionare sul codice in questo modo.

326
00:14:28,120 --> 00:14:29,270
‫Ora, nella

327
00:14:29,270 --> 00:14:31,660
‫prossima lezione faremo un ulteriore passo avanti

328
00:14:31,660 --> 00:14:33,570
‫e renderemo questo ancora più leggibile

329
00:14:33,570 --> 00:14:35,210
‫e più facile da usare.

330
00:14:35,210 --> 00:14:36,783
‫Quindi resta sintonizzato per questo.

