﻿1
00:00:01,500 --> 00:00:03,600
‫Instructeur : Dans cette vidéo, nous

2
00:00:03,600 --> 00:00:06,680
‫promettons les fonctions de lecture de fichier et d'écriture de fichier.

3
00:00:06,680 --> 00:00:09,440
‫Ce qui signifie que nous allons faire en

4
00:00:09,440 --> 00:00:11,230
‫sorte qu'ils renvoient des

5
00:00:11,230 --> 00:00:14,383
‫promesses au lieu de leur passer une fonction de rappel.

6
00:00:16,180 --> 00:00:19,156
‫Donc, si vous le souhaitez, il s'agit essentiellement d'une fonction de

7
00:00:19,156 --> 00:00:20,890
‫lecture de fichier qui renvoie

8
00:00:20,890 --> 00:00:24,300
‫une promesse et qui ne reçoit qu'un nom de fichier, pas de rappel.

9
00:00:24,300 --> 00:00:26,023
‫Alors faisons exactement cela.

10
00:00:28,530 --> 00:00:33,530
‫Nous allons donc créer une fonction read file pro.

11
00:00:34,110 --> 00:00:36,380
‫Donc pro pour promesse car encore une fois

12
00:00:36,380 --> 00:00:37,970
‫il renvoie une promesse.

13
00:00:37,970 --> 00:00:40,270
‫Et puis tout ce que nous faisons est de

14
00:00:41,590 --> 00:00:44,713
‫transmettre le nom du fichier et, comme nous le disions, de retourner une promesse.

15
00:00:46,060 --> 00:00:49,570
‫Alors, retournez une nouvelle promesse.

16
00:00:49,570 --> 00:00:52,150
‫Nous utilisons donc ici le constructeur de

17
00:00:52,150 --> 00:00:55,540
‫promesse qui a été introduit dans le langage avec ES6.

18
00:00:55,540 --> 00:00:58,600
‫Donc avant ES6 comme ES5, ES4 et toutes

19
00:00:58,600 --> 00:01:00,030
‫les versions précédentes,

20
00:01:00,030 --> 00:01:03,820
‫il n'y avait pas de support pour les promesses en JavaScript.

21
00:01:03,820 --> 00:01:05,670
‫Mais ils ont changé cela dans

22
00:01:05,670 --> 00:01:08,660
‫ES6 et ont beaucoup amélioré le langage à cet égard.

23
00:01:08,660 --> 00:01:12,010
‫Donc concernant JavaScript asynchrone.

24
00:01:12,010 --> 00:01:14,350
‫Maintenant, ce constructeur de promesse

25
00:01:14,350 --> 00:01:17,400
‫prend ici une fonction dite d'exécution, qui

26
00:01:17,400 --> 00:01:20,980
‫sera appelée immédiatement lorsque la promesse sera créée.

27
00:01:20,980 --> 00:01:24,450
‫Et cette fonction prendra deux arguments donc

28
00:01:24,450 --> 00:01:26,363
‫résoudre et rejeter.

29
00:01:28,330 --> 00:01:30,370
‫Alors résolvez et rejetez, mais

30
00:01:30,370 --> 00:01:32,770
‫pour l'instant ne vous inquiétez pas pour eux,

31
00:01:32,770 --> 00:01:35,020
‫nous allons en parler dans une minute.

32
00:01:35,020 --> 00:01:38,550
‫Pour l'instant, concentrons-nous uniquement sur cette fonction d'exécution elle-même,

33
00:01:38,550 --> 00:01:41,470
‫car c'est là que nous effectuons réellement

34
00:01:41,470 --> 00:01:43,450
‫tout ce travail asynchrone.

35
00:01:43,450 --> 00:01:46,430
‫Dans ce cas, le fichier lu fonctionne.

36
00:01:46,430 --> 00:01:48,890
‫C'est donc ici que nous allons appeler fs. readfile avec

37
00:01:51,040 --> 00:01:53,287
‫le nom de fichier qui

38
00:01:53,287 --> 00:01:57,270
‫a été transmis, puis la fonction de rappel habituelle, d'accord.

39
00:01:57,270 --> 00:02:00,660
‫Donc l'erreur et les données, donc

40
00:02:00,660 --> 00:02:02,000
‫comme avant.

41
00:02:02,000 --> 00:02:03,550
‫Gardez donc à l'esprit que

42
00:02:03,550 --> 00:02:06,200
‫nous ne modifions pas réellement la fonction de lecture

43
00:02:06,200 --> 00:02:07,997
‫de fichier, nous créons simplement une

44
00:02:07,997 --> 00:02:11,140
‫nouvelle fonction qui, en coulisse, exécute toujours la fonction de

45
00:02:11,140 --> 00:02:13,850
‫lecture de fichier intégrée, mais renvoie ensuite une promesse

46
00:02:13,850 --> 00:02:15,570
‫afin que nous puissions utiliser

47
00:02:15,570 --> 00:02:17,040
‫la promesse à

48
00:02:17,040 --> 00:02:19,170
‫la place de la fonction de rappel.

49
00:02:19,170 --> 00:02:20,320
‫D'accord.

50
00:02:20,320 --> 00:02:22,630
‫Nous avons donc cette fonction de lecture de

51
00:02:22,630 --> 00:02:24,270
‫fichier ici qui fera son

52
00:02:24,270 --> 00:02:27,250
‫travail et quand elle sera prête, elle reviendra avec les données.

53
00:02:27,250 --> 00:02:29,070
‫Et maintenant, c'est là que les

54
00:02:29,070 --> 00:02:31,510
‫fonctions de résolution et de rejet entrent en jeu.

55
00:02:31,510 --> 00:02:34,610
‫Parce que ces deux arguments qui sont disponibles

56
00:02:34,610 --> 00:02:38,390
‫dans la fonction d'exécution, ils sont tous les deux des fonctions.

57
00:02:38,390 --> 00:02:40,410
‫Maintenant, l'appel de la

58
00:02:40,410 --> 00:02:44,250
‫fonction de résolution marquera la promesse comme réussie donc

59
00:02:44,250 --> 00:02:45,320
‫comme remplie,

60
00:02:45,320 --> 00:02:49,010
‫et renverra la valeur réussie de la promesse.

61
00:02:49,010 --> 00:02:50,310
‫Alors faisons-le en fait.

62
00:02:51,520 --> 00:02:55,270
‫Nous appelons donc résoudre avec des données.

63
00:02:55,270 --> 00:02:58,690
‫Donc, quelle que soit la variable que nous passons dans la

64
00:02:58,690 --> 00:03:00,860
‫fonction de résolution, c'est ce qui

65
00:03:00,860 --> 00:03:04,370
‫sera plus tard disponible comme argument dans la méthode then, d'accord ?

66
00:03:04,370 --> 00:03:07,310
‫Donc, ces données ici seront la

67
00:03:07,310 --> 00:03:10,550
‫valeur que cette promesse nous rendra, d'accord.

68
00:03:10,550 --> 00:03:12,930
‫Cela semble probablement un peu déroutant, non?

69
00:03:12,930 --> 00:03:17,080
‫Encore une fois, tout ce que nous passons dans cette fonction ici,

70
00:03:17,080 --> 00:03:18,840
‫dans la fonction de

71
00:03:18,840 --> 00:03:20,690
‫résolution, est le résultat de

72
00:03:20,690 --> 00:03:23,590
‫la promesse qui sera disponible dans le gestionnaire then.

73
00:03:23,590 --> 00:03:24,700
‫D'un autre côté,

74
00:03:24,700 --> 00:03:27,800
‫nous pouvons également marquer la promesse comme rejetée au cas

75
00:03:27,800 --> 00:03:29,960
‫où il y aurait une erreur, d'accord.

76
00:03:29,960 --> 00:03:31,230
‫Et nous le faisons en

77
00:03:31,230 --> 00:03:32,450
‫appelant, comme vous

78
00:03:32,450 --> 00:03:34,710
‫pouvez probablement le deviner, la fonction de rejet.

79
00:03:34,710 --> 00:03:36,390
‫Donc, s'il y a eu une erreur

80
00:03:38,300 --> 00:03:40,530
‫et que c'est similaire à ce que nous avons fait auparavant.

81
00:03:40,530 --> 00:03:42,520
‫Donc, s'il y a eu

82
00:03:42,520 --> 00:03:45,170
‫une erreur ici, appelez la fonction de rejet.

83
00:03:45,170 --> 00:03:47,770
‫Et tout ce que nous passons

84
00:03:47,770 --> 00:03:50,310
‫dans celui-ci sera l'erreur qui

85
00:03:50,310 --> 00:03:52,930
‫sera ensuite disponible dans la méthode catch.

86
00:03:52,930 --> 00:03:54,810
‫Donc, dans celui-ci ici.

87
00:03:54,810 --> 00:03:56,110
‫D'accord?

88
00:03:56,110 --> 00:03:58,673
‫Passons donc simplement une chaîne ici,

89
00:04:00,200 --> 00:04:05,060
‫je n'ai pas pu trouver ce fichier, quelques emoji ici peut-être

90
00:04:05,060 --> 00:04:08,480
‫pour le faire apparaître un peu plus dans

91
00:04:08,480 --> 00:04:11,030
‫notre console. les journaux, d'accord ?

92
00:04:11,030 --> 00:04:11,993
‫Et, d'accord.

93
00:04:11,993 --> 00:04:14,070
‫C'est en fait déjà ça.

94
00:04:14,070 --> 00:04:15,940
‫Alors, revoyons cela ici.

95
00:04:15,940 --> 00:04:17,850
‫Nous avons donc créé un

96
00:04:17,850 --> 00:04:21,080
‫nouveau fichier, nous y passerons un nom de fichier.

97
00:04:21,080 --> 00:04:22,200
‫Donc cet argument.

98
00:04:22,200 --> 00:04:25,580
‫Et tout ce que nous faisons ici est de rendre cette promesse.

99
00:04:25,580 --> 00:04:29,160
‫Cette promesse comprend une fonction d'exécution, donc

100
00:04:29,160 --> 00:04:30,560
‫celle-ci ici,

101
00:04:30,560 --> 00:04:34,040
‫où nous effectuons notre travail asynchrone.

102
00:04:34,040 --> 00:04:36,110
‫Dans ce cas, bien sûr, c'est notre

103
00:04:36,110 --> 00:04:36,943
‫fs. fichier de lecture.

104
00:04:38,500 --> 00:04:41,250
‫Ensuite, si nous obtenons nos données avec succès, nous

105
00:04:41,250 --> 00:04:42,810
‫appelons la fonction de

106
00:04:42,810 --> 00:04:44,950
‫résolution avec la valeur de résolution.

107
00:04:44,950 --> 00:04:46,290
‫Et s'il y a

108
00:04:46,290 --> 00:04:49,040
‫une erreur, nous appelons la fonction de rejet, d'accord ?

109
00:04:49,040 --> 00:04:52,560
‫Et donc utilisons maintenant cela dans la pratique.

110
00:04:52,560 --> 00:04:55,030
‫Lisez le fichier pro, nous passons

111
00:04:55,030 --> 00:04:57,490
‫notre nom de fichier.

112
00:04:57,490 --> 00:04:58,890
‫Alors c'est celui-ci bien sûr

113
00:05:00,020 --> 00:05:01,300
‫et c'est tout.

114
00:05:01,300 --> 00:05:03,460
‫Donc, cela va maintenant retourner une promesse.

115
00:05:03,460 --> 00:05:04,980
‫Et donc, comme avant,

116
00:05:04,980 --> 00:05:08,203
‫nous pouvons ensuite utiliser notre méthode then sur cela.

117
00:05:11,670 --> 00:05:14,930
‫D'accord et donc cet argument de données ici sera exactement

118
00:05:14,930 --> 00:05:17,890
‫ce que nous avons renvoyé de la promesse au

119
00:05:17,890 --> 00:05:19,510
‫cas où cela aboutirait.

120
00:05:19,510 --> 00:05:21,540
‫Alors, avec cette résolution.

121
00:05:21,540 --> 00:05:23,740
‫Donc, pour le moment, notre

122
00:05:23,740 --> 00:05:25,540
‫fichier de chien contient

123
00:05:25,540 --> 00:05:29,440
‫du labrador et donc ces données ici seront du labrador.

124
00:05:29,440 --> 00:05:31,280
‫Et cela est ensuite disponible plus tard

125
00:05:31,280 --> 00:05:32,737
‫dans notre gestionnaire d'alors ici.

126
00:05:32,737 --> 00:05:36,230
‫Mais bien sûr, il n'a pas besoin d'avoir le même nom, je

127
00:05:36,230 --> 00:05:38,670
‫pourrais aussi l'appeler comme résultat ou quelque

128
00:05:38,670 --> 00:05:41,300
‫chose comme ça n'a pas d'importance, d'accord ?

129
00:05:41,300 --> 00:05:44,080
‫D'accord, prenons maintenant tout cela et

130
00:05:44,920 --> 00:05:46,463
‫mettons-le ici.

131
00:05:48,270 --> 00:05:49,103
‫D'accord.

132
00:05:49,103 --> 00:05:52,000
‫Débarrassez-vous de tout cela, enregistrez-le et cela

133
00:05:52,000 --> 00:05:53,720
‫le fera fonctionner.

134
00:05:53,720 --> 00:05:55,520
‫Maintenant, nous obtenons cette erreur ici, donc

135
00:05:55,520 --> 00:05:57,100
‫les données ne sont pas définies.

136
00:05:57,100 --> 00:05:59,480
‫C'est parce que je l'ai changé ici en résultat.

137
00:05:59,480 --> 00:06:02,210
‫Alors revenons en arrière et changeons-le en données car ici

138
00:06:02,210 --> 00:06:03,270
‫nous avons des données

139
00:06:03,270 --> 00:06:04,300
‫et ici nous

140
00:06:04,300 --> 00:06:06,610
‫avons des données et donc de cette façon,

141
00:06:06,610 --> 00:06:09,210
‫je n'ai pas à changer tous ces noms de variables.

142
00:06:09,210 --> 00:06:10,690
‫Donnez-lui une autre sauvegarde

143
00:06:10,690 --> 00:06:12,080
‫et c'est parti.

144
00:06:12,080 --> 00:06:13,460
‫Donc ça a marché, tu vois ?

145
00:06:13,460 --> 00:06:15,150
‫Nous avons en fait obtenu

146
00:06:15,150 --> 00:06:16,720
‫la race, qui est

147
00:06:16,720 --> 00:06:19,870
‫toujours labrador et cette fois de notre promesse, d'accord.

148
00:06:19,870 --> 00:06:21,150
‫Donc, cela a vraiment fonctionné.

149
00:06:21,150 --> 00:06:23,290
‫Ainsi, notre fonction read file

150
00:06:23,290 --> 00:06:24,890
‫pro renvoie maintenant

151
00:06:24,890 --> 00:06:29,890
‫une promesse et ces données ici sont alors disponibles sur notre gestionnaire d'alors.

152
00:06:29,910 --> 00:06:31,660
‫Génial, donc cela fonctionne déjà

153
00:06:31,660 --> 00:06:33,110
‫et nous pouvons l'améliorer

154
00:06:33,110 --> 00:06:33,943
‫beaucoup et

155
00:06:33,943 --> 00:06:36,487
‫nous allons le faire, mais pour l'instant, je

156
00:06:36,487 --> 00:06:39,170
‫veux aussi promettre cette fonction d'écriture de fichier ici.

157
00:06:39,170 --> 00:06:40,580
‫Donc, en gros, faites la même chose

158
00:06:40,580 --> 00:06:42,520
‫que nous avons fait avec la fonction de lecture de fichier.

159
00:06:42,520 --> 00:06:45,110
‫Maintenant, si vous en savez déjà un

160
00:06:45,110 --> 00:06:49,000
‫peu plus sur no js, vous pensez peut-être qu'il existe en fait un

161
00:06:49,000 --> 00:06:52,090
‫nœud de fonction qui promet automatiquement des fonctions pour nous.

162
00:06:52,090 --> 00:06:54,300
‫Mais bien sûr, je voulais vous montrer

163
00:06:54,300 --> 00:06:56,130
‫ici comment les promesses fonctionnent

164
00:06:56,130 --> 00:06:57,320
‫réellement et comment

165
00:06:57,320 --> 00:07:01,270
‫nous les construisons et c'est pourquoi je fais tout cela ici, d'accord.

166
00:07:01,270 --> 00:07:03,860
‫Je veux donc vraiment que vous en appreniez davantage sur les promesses, non seulement

167
00:07:03,860 --> 00:07:05,410
‫sur la façon dont nous les consommons, mais aussi

168
00:07:05,410 --> 00:07:06,710
‫sur la façon de les construire.

169
00:07:06,710 --> 00:07:08,733
‫Et c'est pourquoi je le fais de cette façon.

170
00:07:11,170 --> 00:07:14,913
‫Alors, écrivez le fichier et comme une promesse.

171
00:07:16,720 --> 00:07:19,460
‫Et celui-ci n'a pas seulement besoin du nom du

172
00:07:19,460 --> 00:07:22,993
‫fichier, mais aussi des données qui doivent être écrites dans ce fichier.

173
00:07:25,350 --> 00:07:27,460
‫Mais alors la logique ici est assez similaire.

174
00:07:27,460 --> 00:07:30,253
‫Encore une fois, nous retournons une nouvelle

175
00:07:31,760 --> 00:07:34,230
‫promesse, là-dedans nous avons notre fonction

176
00:07:34,230 --> 00:07:37,823
‫d'exécution qui prend la résolution et le rejet comme argument.

177
00:07:39,090 --> 00:07:40,470
‫Et ce sont en

178
00:07:40,470 --> 00:07:41,860
‫quelque sorte des noms standard Alors

179
00:07:41,860 --> 00:07:44,000
‫résolvez et rejetez, vous pouvez les appeler comme vous

180
00:07:44,000 --> 00:07:46,463
‫le vouliez vraiment, mais c'est en quelque sorte la norme, d'accord.

181
00:07:47,780 --> 00:07:48,613
‫Donc fs,

182
00:07:50,211 --> 00:07:51,044
‫write

183
00:07:52,870 --> 00:07:54,390
‫file, on passe dans

184
00:07:54,390 --> 00:07:57,523
‫le fichier, les données puis la fonction callback.

185
00:07:58,580 --> 00:08:01,260
‫Et maintenant quelque chose de très similaire à

186
00:08:01,260 --> 00:08:02,800
‫avant, donc s'il

187
00:08:02,800 --> 00:08:05,570
‫y avait une erreur, appelez la fonction de

188
00:08:05,570 --> 00:08:07,473
‫rejet et transmettez-y un message.

189
00:08:10,550 --> 00:08:12,340
‫Impossible d'écrire le fichier,

190
00:08:12,340 --> 00:08:16,060
‫encore une fois avec cet emoji ici pour le faire ressortir

191
00:08:16,060 --> 00:08:18,870
‫un peu plus et au cas où tout

192
00:08:18,870 --> 00:08:20,830
‫fonctionnerait bien, eh bien, résolvez-le.

193
00:08:20,830 --> 00:08:24,960
‫Maintenant, nous n'avons aucune donnée à transmettre ici, n'est-ce pas ?

194
00:08:24,960 --> 00:08:27,940
‫Nous allons donc simplement passer dans une chaîne

195
00:08:27,940 --> 00:08:30,920
‫aléatoire quelque chose comme dire succès, d'accord.

196
00:08:30,920 --> 00:08:32,770
‫Ainsi, une promesse ne

197
00:08:32,770 --> 00:08:36,000
‫doit pas toujours renvoyer une valeur significative.

198
00:08:36,000 --> 00:08:38,060
‫Dans ce cas, tout ce que nous

199
00:08:38,060 --> 00:08:39,030
‫essayons de faire

200
00:08:39,030 --> 00:08:42,340
‫ici est d'écrire un fichier qui ne renvoie pas vraiment de valeur significative.

201
00:08:42,340 --> 00:08:46,290
‫Nous sommes donc maintenant prêts à utiliser cette fonction promise mais

202
00:08:46,290 --> 00:08:47,280
‫avant de

203
00:08:47,280 --> 00:08:49,640
‫faire cela, implémentons réellement le chaînage

204
00:08:49,640 --> 00:08:51,750
‫dont je vous parlais auparavant.

205
00:08:51,750 --> 00:08:52,780
‫Donc pour

206
00:08:52,780 --> 00:08:56,170
‫le moment, nous avons toujours des rappels à l'intérieur des rappels

207
00:08:56,170 --> 00:08:58,290
‫à l'intérieur des rappels, n'est-ce pas ?

208
00:08:58,290 --> 00:08:59,550
‫Nous avons donc

209
00:08:59,550 --> 00:09:00,930
‫ceci, qui a ce rappel.

210
00:09:00,930 --> 00:09:03,800
‫Et puis là-dedans, il y a un autre gestionnaire

211
00:09:03,800 --> 00:09:06,470
‫puis qui a encore un autre rappel dedans.

212
00:09:06,470 --> 00:09:09,230
‫Donc ça ne change vraiment rien, n'est-ce pas ?

213
00:09:09,230 --> 00:09:12,697
‫Au lieu de cela, nous voulons enchaîner ces gestionnaires ici.

214
00:09:12,697 --> 00:09:14,090
‫Et le secret pour y

215
00:09:14,090 --> 00:09:17,670
‫parvenir est de faire en sorte que chaque gestionnaire retourne une nouvelle promesse.

216
00:09:17,670 --> 00:09:19,280
‫Alors comment va-t-on faire ça ?

217
00:09:19,280 --> 00:09:24,280
‫Eh bien, rappelez-vous que cette fonction renvoie ici une promesse.

218
00:09:24,760 --> 00:09:26,230
‫Et donc tout ce que

219
00:09:26,230 --> 00:09:29,290
‫nous avons à faire est de retourner cette promesse de ce gestionnaire d'abord.

220
00:09:29,290 --> 00:09:30,490
‫Laisse-moi te montrer ça.

221
00:09:32,370 --> 00:09:35,260
‫On dit donc retour superagent. obtenir et puis

222
00:09:35,260 --> 00:09:38,630
‫la chaîne et c'est maintenant une promesse, d'accord.

223
00:09:38,630 --> 00:09:41,920
‫Et puis nous fermons en fait cette

224
00:09:41,920 --> 00:09:46,520
‫fonction de rappel ici et enchaînons cette méthode puis directement dessus.

225
00:09:46,520 --> 00:09:49,400
‫Sauvegardez-le, nous avons maintenant une erreur ici et

226
00:09:49,400 --> 00:09:51,830
‫c'est à la ligne 40.

227
00:09:51,830 --> 00:09:53,780
‫Débarrassons-nous de ça ici

228
00:09:53,780 --> 00:09:54,913
‫et d'accord.

229
00:09:55,760 --> 00:09:57,730
‫Cela a encore changé le formatage ici

230
00:09:57,730 --> 00:09:59,200
‫pour nous qui était plus

231
00:09:59,200 --> 00:10:02,700
‫joli et nous l'avons déjà en fait déjà en train de fonctionner ici.

232
00:10:02,700 --> 00:10:04,420
‫Alors pourquoi ça marche à nouveau ?

233
00:10:04,420 --> 00:10:06,800
‫Eh bien, bien sûr, cette fonction que nous

234
00:10:06,800 --> 00:10:09,130
‫avons créée au début renvoie une promesse.

235
00:10:09,130 --> 00:10:11,840
‫Nous pouvons donc utiliser la méthode then.

236
00:10:11,840 --> 00:10:14,440
‫Nous faisons ensuite en sorte que cette fonction de

237
00:10:14,440 --> 00:10:16,690
‫rappel qui s'y trouve renvoie une promesse.

238
00:10:16,690 --> 00:10:18,530
‫Et comme ça, nous

239
00:10:18,530 --> 00:10:21,150
‫pouvons ensuite enchaîner le gestionnaire suivant sur celui-ci.

240
00:10:21,150 --> 00:10:22,860
‫Donc, cette variable de

241
00:10:22,860 --> 00:10:25,760
‫résultat ici sera alors la valeur résolue de

242
00:10:25,760 --> 00:10:29,170
‫cette promesse renvoyée par le gestionnaire précédent, d'accord ?

243
00:10:29,170 --> 00:10:30,750
‫Logique?

244
00:10:30,750 --> 00:10:33,020
‫Maintenant, pour aller plus loin,

245
00:10:33,020 --> 00:10:33,990
‫nous allons

246
00:10:33,990 --> 00:10:38,423
‫également utiliser notre fonction d'écriture de fichier pro ici maintenant.

247
00:10:39,350 --> 00:10:41,980
‫Et puisque nous voulons continuer à enchaîner les méthodes d'alors,

248
00:10:41,980 --> 00:10:44,190
‫nous les renverrons à nouveau en fait.

249
00:10:44,190 --> 00:10:48,163
‫Alors revenez, écrivez file pro pass dans le

250
00:10:50,420 --> 00:10:53,513
‫nom du fichier, qui est celui-ci,

251
00:10:55,840 --> 00:10:57,070
‫les données...

252
00:11:00,210 --> 00:11:01,360
‫Et c'est en fait ça.

253
00:11:03,460 --> 00:11:06,600
‫D'accord, nous n'avons plus besoin de tout cela ici,

254
00:11:06,600 --> 00:11:08,250
‫commentons-le pour le moment.

255
00:11:09,880 --> 00:11:11,650
‫Débarrassez-vous de cet espace

256
00:11:11,650 --> 00:11:14,973
‫ici et là, nous pouvons enchaîner le prochain gestionnaire.

257
00:11:16,010 --> 00:11:18,230
‫Alors, et rappelez-vous qu'ici

258
00:11:18,230 --> 00:11:21,950
‫nous n'avions pas vraiment de valeur résolue significative.

259
00:11:21,950 --> 00:11:24,240
‫Donc, nous ne voulons aucun

260
00:11:24,240 --> 00:11:26,580
‫argument pour cette fonction de rappel ici,

261
00:11:26,580 --> 00:11:31,433
‫tout ce que nous voulons faire est d'enregistrer cette chaîne, n'est-ce pas ?

262
00:11:32,640 --> 00:11:34,970
‫Alors maintenant, nous pouvons vraiment nous en

263
00:11:36,450 --> 00:11:37,920
‫débarrasser et d'accord.

264
00:11:37,920 --> 00:11:39,490
‫Donc, ici, nous voyons

265
00:11:39,490 --> 00:11:41,090
‫maintenant que cela fonctionne déjà.

266
00:11:41,090 --> 00:11:43,080
‫Et encore une fois,

267
00:11:43,080 --> 00:11:46,050
‫l'astuce pour pouvoir enchaîner toutes ces méthodes ici

268
00:11:46,050 --> 00:11:49,360
‫est de retourner une promesse avant d'appeler chacune d'elles.

269
00:11:49,360 --> 00:11:52,360
‫Donc, celui-ci ici renvoie évidemment une promesse ici afin

270
00:11:52,360 --> 00:11:55,320
‫que nous puissions enchaîner la méthode then dessus.

271
00:11:55,320 --> 00:11:56,860
‫Ensuite, ce morceau de

272
00:11:56,860 --> 00:11:58,110
‫code ici renverra

273
00:11:58,110 --> 00:12:00,630
‫une promesse et nous pourrons donc l'utiliser dessus.

274
00:12:00,630 --> 00:12:02,920
‫Ensuite, ce morceau de code

275
00:12:02,920 --> 00:12:07,320
‫renverra une promesse et nous pourrons donc l'utiliser à nouveau, d'accord ?

276
00:12:07,320 --> 00:12:09,010
‫Voilà donc son secret.

277
00:12:09,010 --> 00:12:10,380
‫Donnez-lui à nouveau une

278
00:12:10,380 --> 00:12:13,500
‫sauvegarde et nous voyons ici que la race est toujours labrador.

279
00:12:13,500 --> 00:12:16,640
‫Nous voyons que voici le lien, allons ici

280
00:12:16,640 --> 00:12:19,180
‫et confirmons qu'il s'agit bien ici

281
00:12:19,180 --> 00:12:21,300
‫du même que celui-ci.

282
00:12:21,300 --> 00:12:26,050
‫Et il a donc écrit avec succès la chaîne dans le fichier

283
00:12:26,050 --> 00:12:30,717
‫texte en utilisant notre fonction d'écriture de fichier promis, d'accord.

284
00:12:30,717 --> 00:12:34,240
‫Et puis à la fin, nous avons ce gestionnaire d'erreurs.

285
00:12:34,240 --> 00:12:38,060
‫Et la beauté ici est que pour toutes ces chaînes puis

286
00:12:38,060 --> 00:12:39,430
‫gestionnaires à la

287
00:12:39,430 --> 00:12:43,020
‫fin, nous avons simplement besoin d'un seul gestionnaire de capture.

288
00:12:43,020 --> 00:12:44,980
‫Donc, une fonction gère

289
00:12:44,980 --> 00:12:48,910
‫les erreurs provenant de l'une ou l'autre des trois promesses, d'accord.

290
00:12:48,910 --> 00:12:52,090
‫En fait, enregistrons uniquement l'erreur sur la console

291
00:12:52,090 --> 00:12:53,900
‫et essayons, par exemple,

292
00:12:53,900 --> 00:12:56,160
‫de modifier ce fichier ici.

293
00:12:56,160 --> 00:12:57,980
‫En fait, pas le

294
00:12:57,980 --> 00:13:01,940
‫fichier, mais je vais changer le nom du fichier ici, l'enregistrer

295
00:13:01,940 --> 00:13:06,150
‫et maintenant nous voyons que je n'ai pas pu trouver ce fichier.

296
00:13:06,150 --> 00:13:07,970
‫Alors d'où ça vient ?

297
00:13:07,970 --> 00:13:09,720
‫Cela vient juste

298
00:13:09,720 --> 00:13:13,410
‫d'appeler la fonction de rejet, d'accord ?

299
00:13:13,410 --> 00:13:16,320
‫Nous avons donc une erreur ici car nous n'avons pas pu trouver le

300
00:13:16,320 --> 00:13:18,890
‫fichier et nous avons donc appelé la fonction de rejet.

301
00:13:18,890 --> 00:13:22,600
‫Et cette fonction de rejet marquera alors cette promesse ici, alors

302
00:13:23,850 --> 00:13:25,720
‫souvenez-vous qu'il s'agit d'une promesse.

303
00:13:25,720 --> 00:13:27,780
‫Il le marquera comme rejeté.

304
00:13:27,780 --> 00:13:30,870
‫Et par conséquent, la fonction catch est appelée.

305
00:13:30,870 --> 00:13:33,260
‫Et puis nous enregistrons cette erreur sur la console.

306
00:13:33,260 --> 00:13:36,313
‫Et le résultat est ce que vous pouvez voir ici.

307
00:13:37,360 --> 00:13:40,830
‫Bon, remettons-le maintenant ça

308
00:13:40,830 --> 00:13:41,900
‫marche.

309
00:13:41,900 --> 00:13:43,920
‫Maintenant, allons dans le fichier, créons

310
00:13:43,920 --> 00:13:45,880
‫un chien qui n'existe pas

311
00:13:50,010 --> 00:13:54,320
‫et maintenant, oh, nous avons ici cette grosse erreur étrange et c'est parce

312
00:13:54,320 --> 00:13:57,583
‫que nous enregistrons simplement l'erreur entière et non le

313
00:13:57,583 --> 00:14:00,700
‫message d'erreur comme nous le faisions avant mais ne

314
00:14:00,700 --> 00:14:01,723
‫pas d'importance.

315
00:14:03,500 --> 00:14:05,203
‫Maintenant, sauvez-le ici maintenant, remettez-le

316
00:14:06,170 --> 00:14:07,220
‫en place

317
00:14:07,220 --> 00:14:08,500
‫et tout va bien.

318
00:14:08,500 --> 00:14:10,210
‫Alors maintenant, tout fonctionne et

319
00:14:10,210 --> 00:14:12,510
‫nous nous sommes débarrassés de cette forme

320
00:14:12,510 --> 00:14:14,040
‫triangulaire que nous avions

321
00:14:14,040 --> 00:14:18,420
‫dans notre code et avons maintenant une structure dite plate de promesses en chaîne.

322
00:14:18,420 --> 00:14:20,600
‫Donc, encore une fois, c'est beaucoup

323
00:14:20,600 --> 00:14:23,150
‫plus facile à gérer et j'espère que vous pouvez

324
00:14:23,150 --> 00:14:25,430
‫commencer à l'apprécier et c'est aussi plus logique

325
00:14:25,430 --> 00:14:28,120
‫de penser et de raisonner sur le code comme ça.

326
00:14:28,120 --> 00:14:29,270
‫Maintenant, dans

327
00:14:29,270 --> 00:14:31,660
‫la prochaine conférence, nous irons encore plus loin

328
00:14:31,660 --> 00:14:33,570
‫et le rendrons encore plus lisible

329
00:14:33,570 --> 00:14:35,210
‫et plus facile à utiliser.

330
00:14:35,210 --> 00:14:36,783
‫Alors restez à l'écoute pour cela.

