﻿1
00:00:01,500 --> 00:00:03,600
‫Instruktur: Dalam video ini, kami

2
00:00:03,600 --> 00:00:06,680
‫akan menjanjikan fungsi membaca file dan menulis file.

3
00:00:06,680 --> 00:00:09,440
‫Yang berarti bahwa kita akan membuatnya sehingga

4
00:00:09,440 --> 00:00:11,230
‫mereka mengembalikan janji

5
00:00:11,230 --> 00:00:14,383
‫alih-alih kita meneruskan fungsi panggilan balik ke dalamnya.

6
00:00:16,180 --> 00:00:19,156
‫Jadi jika Anda mau, pada dasarnya ini adalah fungsi

7
00:00:19,156 --> 00:00:20,890
‫membaca file yang mengembalikan

8
00:00:20,890 --> 00:00:24,300
‫janji dan hanya menerima nama file, tidak ada panggilan balik.

9
00:00:24,300 --> 00:00:26,023
‫Jadi mari kita lakukan persis seperti itu.

10
00:00:28,530 --> 00:00:33,530
‫Jadi, kita akan membuat fungsi read file pro.

11
00:00:34,110 --> 00:00:36,380
‫Jadi pro untuk janji karena lagi-lagi

12
00:00:36,380 --> 00:00:37,970
‫itu mengembalikan janji.

13
00:00:37,970 --> 00:00:40,270
‫Dan kemudian yang kita lakukan hanyalah memasukkan

14
00:00:41,590 --> 00:00:44,713
‫nama file dan seperti yang kita katakan, mengembalikan sebuah janji.

15
00:00:46,060 --> 00:00:49,570
‫Jadi, kembalikan janji baru.

16
00:00:49,570 --> 00:00:52,150
‫Jadi kami menggunakan konstruktor janji di

17
00:00:52,150 --> 00:00:55,540
‫sini yang diperkenalkan ke dalam bahasa dengan ES6.

18
00:00:55,540 --> 00:00:58,600
‫Jadi sebelum ES6 seperti ES5, ES4 dan

19
00:00:58,600 --> 00:01:00,030
‫semua versi

20
00:01:00,030 --> 00:01:03,820
‫sebelumnya, tidak ada dukungan untuk janji di JavaScript.

21
00:01:03,820 --> 00:01:05,670
‫Tapi mereka mengubahnya di ES6

22
00:01:05,670 --> 00:01:08,660
‫dan membuat bahasanya jauh lebih baik dalam hal itu.

23
00:01:08,660 --> 00:01:12,010
‫Jadi tentang JavaScript asinkron.

24
00:01:12,010 --> 00:01:14,350
‫Sekarang konstruktor janji ini

25
00:01:14,350 --> 00:01:17,400
‫di sini mengambil apa yang disebut fungsi

26
00:01:17,400 --> 00:01:20,980
‫pelaksana, yang akan dipanggil segera saat janji dibuat.

27
00:01:20,980 --> 00:01:24,450
‫Dan fungsi ini akan mengambil dua argumen jadi

28
00:01:24,450 --> 00:01:26,363
‫selesaikan dan tolak.

29
00:01:28,330 --> 00:01:30,370
‫Jadi putuskan dan tolak,

30
00:01:30,370 --> 00:01:32,770
‫tapi untuk saat ini jangan khawatir untuk

31
00:01:32,770 --> 00:01:35,020
‫mereka, kita akan membicarakannya sebentar lagi.

32
00:01:35,020 --> 00:01:38,550
‫Untuk saat ini mari kita fokus pada fungsi pelaksana

33
00:01:38,550 --> 00:01:41,470
‫ini sendiri karena di sinilah kita sebenarnya melakukan

34
00:01:41,470 --> 00:01:43,450
‫semua pekerjaan asinkron ini.

35
00:01:43,450 --> 00:01:46,430
‫Dalam hal ini file baca berfungsi.

36
00:01:46,430 --> 00:01:48,890
‫Jadi di sinilah kita akan memanggil fs. readfile dengan

37
00:01:51,040 --> 00:01:53,287
‫nama file yang diteruskan

38
00:01:53,287 --> 00:01:57,270
‫dan kemudian fungsi panggilan balik biasa, oke.

39
00:01:57,270 --> 00:02:00,660
‫Jadi error dan datanya, jadi sama

40
00:02:00,660 --> 00:02:02,000
‫seperti sebelumnya.

41
00:02:02,000 --> 00:02:03,550
‫Jadi perlu diingat bahwa

42
00:02:03,550 --> 00:02:06,200
‫kami tidak benar-benar mengubah fungsi file baca,

43
00:02:06,200 --> 00:02:07,997
‫kami hanya membuat fungsi baru

44
00:02:07,997 --> 00:02:11,140
‫yang di balik layar tentu saja masih menjalankan

45
00:02:11,140 --> 00:02:13,850
‫fungsi file baca bawaan tetapi kemudian mengembalikan

46
00:02:13,850 --> 00:02:15,570
‫janji sehingga kami dapat

47
00:02:15,570 --> 00:02:17,040
‫menggunakan janji

48
00:02:17,040 --> 00:02:19,170
‫sebagai gantinya dari fungsi panggilan balik.

49
00:02:19,170 --> 00:02:20,320
‫Oke.

50
00:02:20,320 --> 00:02:22,630
‫Jadi kita memiliki fungsi membaca file di

51
00:02:22,630 --> 00:02:24,270
‫sini yang akan melakukan

52
00:02:24,270 --> 00:02:27,250
‫tugasnya dan ketika sudah siap akan kembali dengan data.

53
00:02:27,250 --> 00:02:29,070
‫Dan sekarang di

54
00:02:29,070 --> 00:02:31,510
‫sinilah fungsi tekad dan penolakan berperan.

55
00:02:31,510 --> 00:02:34,610
‫Karena kedua argumen ini yang

56
00:02:34,610 --> 00:02:38,390
‫tersedia di fungsi eksekutor keduanya adalah fungsi.

57
00:02:38,390 --> 00:02:40,410
‫Sekarang memanggil fungsi resolve

58
00:02:40,410 --> 00:02:44,250
‫pada dasarnya akan menandai janji sebagai berhasil

59
00:02:44,250 --> 00:02:45,320
‫sehingga

60
00:02:45,320 --> 00:02:49,010
‫terpenuhi, dan mengembalikan nilai sukses dari janji.

61
00:02:49,010 --> 00:02:50,310
‫Jadi mari kita lakukan itu.

62
00:02:51,520 --> 00:02:55,270
‫Jadi kita sebut menyelesaikan dengan data.

63
00:02:55,270 --> 00:02:58,690
‫Jadi variabel apa pun yang kita masukkan ke dalam

64
00:02:58,690 --> 00:03:00,860
‫fungsi resolve adalah apa yang

65
00:03:00,860 --> 00:03:04,370
‫nantinya akan tersedia sebagai argumen dalam metode then, oke?

66
00:03:04,370 --> 00:03:07,310
‫Jadi data ini di sini akan menjadi

67
00:03:07,310 --> 00:03:10,550
‫nilai bahwa janji ini kembali kepada kita, oke.

68
00:03:10,550 --> 00:03:12,930
‫Itu mungkin terdengar agak membingungkan, bukan?

69
00:03:12,930 --> 00:03:17,080
‫Jadi sekali lagi, apa pun yang kita masukkan ke dalam fungsi ini

70
00:03:17,080 --> 00:03:18,840
‫di sini, ke dalam

71
00:03:18,840 --> 00:03:20,690
‫fungsi resolve, adalah hasil dari

72
00:03:20,690 --> 00:03:23,590
‫janji yang akan tersedia di handler saat itu.

73
00:03:23,590 --> 00:03:24,700
‫Sekarang di

74
00:03:24,700 --> 00:03:27,800
‫sisi lain, kita juga bisa menandai janji sebagai

75
00:03:27,800 --> 00:03:29,960
‫ditolak jika ada kesalahan, oke.

76
00:03:29,960 --> 00:03:31,230
‫Dan kami melakukannya dengan

77
00:03:31,230 --> 00:03:32,450
‫memanggil, seperti

78
00:03:32,450 --> 00:03:34,710
‫yang mungkin bisa Anda tebak, fungsi penolakan.

79
00:03:34,710 --> 00:03:36,390
‫Jadi, jika ada kesalahan dan

80
00:03:38,300 --> 00:03:40,530
‫ini mirip dengan yang kami lakukan sebelumnya.

81
00:03:40,530 --> 00:03:42,520
‫Jadi jika ada kesalahan

82
00:03:42,520 --> 00:03:45,170
‫di sini, maka panggil fungsi tolak.

83
00:03:45,170 --> 00:03:47,770
‫Dan apapun yang kita lewati

84
00:03:47,770 --> 00:03:50,310
‫ini akan menjadi kesalahan

85
00:03:50,310 --> 00:03:52,930
‫yang nantinya tersedia di metode catch.

86
00:03:52,930 --> 00:03:54,810
‫Jadi, dalam satu ini di sini.

87
00:03:54,810 --> 00:03:56,110
‫Oke?

88
00:03:56,110 --> 00:03:58,673
‫Jadi mari kita berikan string

89
00:04:00,200 --> 00:04:05,060
‫di sini, saya tidak dapat menemukan file itu, beberapa emoji di

90
00:04:05,060 --> 00:04:08,480
‫sini mungkin untuk membuatnya lebih menonjol di

91
00:04:08,480 --> 00:04:11,030
‫konsol kami. log, oke?

92
00:04:11,030 --> 00:04:11,993
‫Dan, oke.

93
00:04:11,993 --> 00:04:14,070
‫Itu sebenarnya sudah.

94
00:04:14,070 --> 00:04:15,940
‫Jadi, mari kita tinjau lagi di sini.

95
00:04:15,940 --> 00:04:17,850
‫Jadi kami membuat file

96
00:04:17,850 --> 00:04:21,080
‫baru, di sana kami akan memberikan nama file.

97
00:04:21,080 --> 00:04:22,200
‫Jadi argumen ini.

98
00:04:22,200 --> 00:04:25,580
‫Dan semua yang kita lakukan di sini adalah untuk mengembalikan janji ini.

99
00:04:25,580 --> 00:04:29,160
‫Janji ini mengambil satu fungsi pelaksana, jadi yang

100
00:04:29,160 --> 00:04:30,560
‫ini di

101
00:04:30,560 --> 00:04:34,040
‫sini, di mana kami melakukan pekerjaan asinkron kami.

102
00:04:34,040 --> 00:04:36,110
‫Dalam hal ini di sini tentu saja fs

103
00:04:36,110 --> 00:04:36,943
‫kami. file baca.

104
00:04:38,500 --> 00:04:41,250
‫Kemudian jika kami mendapatkan data kami dengan cara

105
00:04:41,250 --> 00:04:42,810
‫yang berhasil, kami

106
00:04:42,810 --> 00:04:44,950
‫memanggil fungsi resolve dengan nilai resolve.

107
00:04:44,950 --> 00:04:46,290
‫Dan jika

108
00:04:46,290 --> 00:04:49,040
‫ada error kita panggil fungsi reject, oke?

109
00:04:49,040 --> 00:04:52,560
‫Jadi sekarang mari kita benar-benar menggunakan ini dalam praktik.

110
00:04:52,560 --> 00:04:55,030
‫Baca file pro, kami memberikan

111
00:04:55,030 --> 00:04:57,490
‫nama file kami.

112
00:04:57,490 --> 00:04:58,890
‫Jadi yang satu ini tentu

113
00:05:00,020 --> 00:05:01,300
‫saja dan hanya itu.

114
00:05:01,300 --> 00:05:03,460
‫Jadi ini sekarang akan mengembalikan janji.

115
00:05:03,460 --> 00:05:04,980
‫Dan seperti sebelumnya

116
00:05:04,980 --> 00:05:08,203
‫kita dapat menggunakan metode then kita untuk itu.

117
00:05:11,670 --> 00:05:14,930
‫Oke dan jadi argumen data ini di sini

118
00:05:14,930 --> 00:05:17,890
‫akan persis seperti yang kami kembalikan dari janji

119
00:05:17,890 --> 00:05:19,510
‫jika itu berhasil.

120
00:05:19,510 --> 00:05:21,540
‫Jadi, dengan tekad ini.

121
00:05:21,540 --> 00:05:23,740
‫Jadi sekarang file anjing kami

122
00:05:23,740 --> 00:05:25,540
‫di sini berisi

123
00:05:25,540 --> 00:05:29,440
‫labrador dan data ini di sini akan menjadi labrador.

124
00:05:29,440 --> 00:05:31,280
‫Dan itu kemudian tersedia di penangan

125
00:05:31,280 --> 00:05:32,737
‫kami di sini.

126
00:05:32,737 --> 00:05:36,230
‫Tapi tentu saja tidak harus memiliki nama yang sama,

127
00:05:36,230 --> 00:05:38,670
‫saya juga bisa menyebutnya seperti

128
00:05:38,670 --> 00:05:41,300
‫hasil atau sesuatu yang tidak masalah, oke?

129
00:05:41,300 --> 00:05:44,080
‫Oke, jadi sekarang mari kita ambil semua ini

130
00:05:44,920 --> 00:05:46,463
‫dan taruh di sini.

131
00:05:48,270 --> 00:05:49,103
‫Oke.

132
00:05:49,103 --> 00:05:52,000
‫Singkirkan semua ini, simpan dan itu

133
00:05:52,000 --> 00:05:53,720
‫akan menjalankannya.

134
00:05:53,720 --> 00:05:55,520
‫Sekarang kita mendapatkan kesalahan itu di

135
00:05:55,520 --> 00:05:57,100
‫sini sehingga data tidak ditentukan.

136
00:05:57,100 --> 00:05:59,480
‫Itu karena saya mengubahnya di sini menjadi hasil.

137
00:05:59,480 --> 00:06:02,210
‫Jadi mari kita kembali dan mengubahnya menjadi data karena di

138
00:06:02,210 --> 00:06:03,270
‫sini kita memiliki data

139
00:06:03,270 --> 00:06:04,300
‫dan di sini

140
00:06:04,300 --> 00:06:06,610
‫kita memiliki data dan dengan cara ini saya

141
00:06:06,610 --> 00:06:09,210
‫tidak perlu melanjutkan dan mengubah semua nama variabel ini.

142
00:06:09,210 --> 00:06:10,690
‫Berikan save lagi dan

143
00:06:10,690 --> 00:06:12,080
‫ini dia.

144
00:06:12,080 --> 00:06:13,460
‫Jadi itu berhasil, Anda lihat?

145
00:06:13,460 --> 00:06:15,150
‫Kami benar-benar mendapatkan breed,

146
00:06:15,150 --> 00:06:16,720
‫yang masih labrador

147
00:06:16,720 --> 00:06:19,870
‫dan kali ini dari janji kami, oke.

148
00:06:19,870 --> 00:06:21,150
‫Jadi, ini benar-benar berhasil.

149
00:06:21,150 --> 00:06:23,290
‫Jadi fungsi pro file baca

150
00:06:23,290 --> 00:06:24,890
‫kami sekarang mengembalikan

151
00:06:24,890 --> 00:06:29,890
‫janji dan data di sini kemudian tersedia di penangan kami saat itu.

152
00:06:29,910 --> 00:06:31,660
‫Bagus, jadi ini sudah bekerja dan

153
00:06:31,660 --> 00:06:33,110
‫kita bisa membuatnya jauh

154
00:06:33,110 --> 00:06:33,943
‫lebih baik

155
00:06:33,943 --> 00:06:36,487
‫dan kita akan melakukannya tapi untuk saat ini saya

156
00:06:36,487 --> 00:06:39,170
‫juga ingin menjanjikan fungsi file tulis ini di sini.

157
00:06:39,170 --> 00:06:40,580
‫Jadi pada dasarnya, lakukan hal yang

158
00:06:40,580 --> 00:06:42,520
‫sama seperti yang kita lakukan dengan fungsi read file.

159
00:06:42,520 --> 00:06:45,110
‫Sekarang, jika Anda sudah tahu sedikit

160
00:06:45,110 --> 00:06:49,000
‫tentang no js, mungkin Anda berpikir bahwa sebenarnya ada node

161
00:06:49,000 --> 00:06:52,090
‫fungsi yang secara otomatis menjanjikan fungsi untuk kita.

162
00:06:52,090 --> 00:06:54,300
‫Tapi tentu saja saya ingin menunjukkan kepada

163
00:06:54,300 --> 00:06:56,130
‫Anda di sini bagaimana janji

164
00:06:56,130 --> 00:06:57,320
‫benar-benar bekerja dan

165
00:06:57,320 --> 00:07:01,270
‫bagaimana kita membangunnya dan itulah mengapa saya melakukan semua ini di sini, oke.

166
00:07:01,270 --> 00:07:03,860
‫Jadi saya benar-benar ingin Anda belajar tentang janji, bukan

167
00:07:03,860 --> 00:07:05,410
‫hanya bagaimana kita mengkonsumsinya tetapi

168
00:07:05,410 --> 00:07:06,710
‫juga bagaimana membangunnya.

169
00:07:06,710 --> 00:07:08,733
‫Dan itulah mengapa saya melakukannya dengan cara ini.

170
00:07:11,170 --> 00:07:14,913
‫Jadi, tulis file dan sebagai janji.

171
00:07:16,720 --> 00:07:19,460
‫Dan yang ini sebenarnya tidak hanya membutuhkan

172
00:07:19,460 --> 00:07:22,993
‫nama file tetapi juga data yang harus ditulis ke file tersebut.

173
00:07:25,350 --> 00:07:27,460
‫Tapi kemudian logika di sini sangat mirip.

174
00:07:27,460 --> 00:07:30,253
‫Jadi sekali lagi, kami mengembalikan janji baru,

175
00:07:31,760 --> 00:07:34,230
‫di sana kami memiliki fungsi

176
00:07:34,230 --> 00:07:37,823
‫pelaksana kami yang mengambil keputusan dan penolakan sebagai argumen.

177
00:07:39,090 --> 00:07:40,470
‫Dan ini adalah jenis

178
00:07:40,470 --> 00:07:41,860
‫nama standar Jadi putuskan dan

179
00:07:41,860 --> 00:07:44,000
‫tolak, Anda dapat memanggil mereka apa pun

180
00:07:44,000 --> 00:07:46,463
‫yang Anda inginkan tetapi ini adalah jenis standar, oke.

181
00:07:47,780 --> 00:07:48,613
‫Jadi fs,

182
00:07:50,211 --> 00:07:51,044
‫tulis

183
00:07:52,870 --> 00:07:54,390
‫file, kami meneruskan

184
00:07:54,390 --> 00:07:57,523
‫file, data, dan kemudian fungsi panggilan balik.

185
00:07:58,580 --> 00:08:01,260
‫Dan sekarang sesuatu yang sangat mirip dengan

186
00:08:01,260 --> 00:08:02,800
‫sebelumnya, jadi jika

187
00:08:02,800 --> 00:08:05,570
‫ada kesalahan, panggil fungsi penolakan dan berikan

188
00:08:05,570 --> 00:08:07,473
‫beberapa pesan di sana.

189
00:08:10,550 --> 00:08:12,340
‫Tidak dapat menulis

190
00:08:12,340 --> 00:08:16,060
‫file, sekali lagi dengan emoji ini di sini untuk

191
00:08:16,060 --> 00:08:18,870
‫membuatnya lebih menonjol dan jika semuanya berfungsi

192
00:08:18,870 --> 00:08:20,830
‫dengan baik, maka selesaikan saja.

193
00:08:20,830 --> 00:08:24,960
‫Sekarang kita tidak memiliki data yang benar-benar untuk dilewatkan di sini kan?

194
00:08:24,960 --> 00:08:27,940
‫Jadi kita hanya akan menyampaikan beberapa

195
00:08:27,940 --> 00:08:30,920
‫string acak seperti mengatakan sukses, oke.

196
00:08:30,920 --> 00:08:32,770
‫Jadi sebuah janji

197
00:08:32,770 --> 00:08:36,000
‫tidak selalu harus mengembalikan nilai yang berarti.

198
00:08:36,000 --> 00:08:38,060
‫Dalam hal ini, yang benar-benar kami coba

199
00:08:38,060 --> 00:08:39,030
‫lakukan di

200
00:08:39,030 --> 00:08:42,340
‫sini adalah menulis file yang tidak benar-benar mengembalikan nilai yang berarti.

201
00:08:42,340 --> 00:08:46,290
‫Jadi kita sekarang siap untuk menggunakan fungsi yang dijanjikan ini

202
00:08:46,290 --> 00:08:47,280
‫tetapi sebelum

203
00:08:47,280 --> 00:08:49,640
‫kita melakukannya, mari kita benar-benar menerapkan

204
00:08:49,640 --> 00:08:51,750
‫rantai yang saya bicarakan sebelumnya.

205
00:08:51,750 --> 00:08:52,780
‫Jadi sekarang,

206
00:08:52,780 --> 00:08:56,170
‫kita sebenarnya masih memiliki panggilan balik di dalam panggilan

207
00:08:56,170 --> 00:08:58,290
‫balik di dalam panggilan balik, bukan?

208
00:08:58,290 --> 00:08:59,550
‫Jadi kita punya ini,

209
00:08:59,550 --> 00:09:00,930
‫yang memiliki panggilan balik ini.

210
00:09:00,930 --> 00:09:03,800
‫Dan kemudian di sana ada penangan lain yang

211
00:09:03,800 --> 00:09:06,470
‫memiliki panggilan balik lain di dalamnya.

212
00:09:06,470 --> 00:09:09,230
‫Jadi itu tidak benar-benar mengubah apa pun, bukan?

213
00:09:09,230 --> 00:09:12,697
‫Alih-alih, kami ingin merantai penangan ini di sini.

214
00:09:12,697 --> 00:09:14,090
‫Dan rahasia untuk

215
00:09:14,090 --> 00:09:17,670
‫melakukan itu adalah membuat setiap pawang mengembalikan janji baru.

216
00:09:17,670 --> 00:09:19,280
‫Jadi bagaimana kita akan melakukannya?

217
00:09:19,280 --> 00:09:24,280
‫Nah, ingat bahwa fungsi ini di sini mengembalikan janji.

218
00:09:24,760 --> 00:09:26,230
‫Jadi yang harus kita

219
00:09:26,230 --> 00:09:29,290
‫lakukan adalah mengembalikan janji itu dari penangan pertama ini.

220
00:09:29,290 --> 00:09:30,490
‫Biarkan saya menunjukkan itu kepada Anda.

221
00:09:32,370 --> 00:09:35,260
‫Jadi kami mengatakan kembali superagent. dapatkan dan kemudian

222
00:09:35,260 --> 00:09:38,630
‫string dan itu sekarang menjadi janji, oke.

223
00:09:38,630 --> 00:09:41,920
‫Dan kemudian kami benar-benar menutup fungsi panggilan

224
00:09:41,920 --> 00:09:46,520
‫balik ini di sini dan menyambungkan metode ini lalu ke kanan.

225
00:09:46,520 --> 00:09:49,400
‫Coba simpan, sekarang kami memiliki beberapa kesalahan di

226
00:09:49,400 --> 00:09:51,830
‫sini dan itu di baris 40.

227
00:09:51,830 --> 00:09:53,780
‫Mari kita singkirkan ini di sini

228
00:09:53,780 --> 00:09:54,913
‫dan oke.

229
00:09:55,760 --> 00:09:57,730
‫Itu mengubah pemformatan di sini untuk

230
00:09:57,730 --> 00:09:59,200
‫kami lagi yang

231
00:09:59,200 --> 00:10:02,700
‫lebih cantik dan kemudian kami sebenarnya sudah membuatnya berfungsi di sini.

232
00:10:02,700 --> 00:10:04,420
‫Jadi mengapa ini bekerja lagi?

233
00:10:04,420 --> 00:10:06,800
‫Nah, tentu saja fungsi yang kita buat

234
00:10:06,800 --> 00:10:09,130
‫di awal ini mengembalikan sebuah janji.

235
00:10:09,130 --> 00:10:11,840
‫Maka dari itu kita bisa menggunakan metode then.

236
00:10:11,840 --> 00:10:14,440
‫Kami kemudian membuat fungsi panggilan balik ini yang

237
00:10:14,440 --> 00:10:16,690
‫ada di dalamnya lagi mengembalikan janji.

238
00:10:16,690 --> 00:10:18,530
‫Dan seperti itu kita

239
00:10:18,530 --> 00:10:21,150
‫kemudian dapat merantai penangan berikutnya pada itu.

240
00:10:21,150 --> 00:10:22,860
‫Jadi variabel hasil ini

241
00:10:22,860 --> 00:10:25,760
‫di sini kemudian akan menjadi nilai yang diselesaikan

242
00:10:25,760 --> 00:10:29,170
‫dari janji ini yang dikembalikan dari penangan sebelumnya, oke?

243
00:10:29,170 --> 00:10:30,750
‫Masuk akal?

244
00:10:30,750 --> 00:10:33,020
‫Sekarang untuk melangkah lebih jauh, kami

245
00:10:33,020 --> 00:10:33,990
‫akan melanjutkan

246
00:10:33,990 --> 00:10:38,423
‫dan menggunakan fungsi pro file tulis kami di sini sekarang juga.

247
00:10:39,350 --> 00:10:41,980
‫Dan karena kami ingin terus merantai metode

248
00:10:41,980 --> 00:10:44,190
‫maka kami akan mengembalikannya lagi.

249
00:10:44,190 --> 00:10:48,163
‫Jadi kembali, tulis file pro pass dengan

250
00:10:50,420 --> 00:10:53,513
‫nama file, yang ini, datanya

251
00:10:55,840 --> 00:10:57,070
‫...

252
00:11:00,210 --> 00:11:01,360
‫Dan itu sebenarnya.

253
00:11:03,460 --> 00:11:06,600
‫Oke, jadi kita tidak membutuhkan semua ini di sini lagi, mari kita

254
00:11:06,600 --> 00:11:08,250
‫komentar saja untuk saat ini.

255
00:11:09,880 --> 00:11:11,650
‫Singkirkan ruang ini di

256
00:11:11,650 --> 00:11:14,973
‫sini dan kemudian di sana kita bisa merantai pawang berikutnya.

257
00:11:16,010 --> 00:11:18,230
‫Jadi, dan ingatlah bahwa di

258
00:11:18,230 --> 00:11:21,950
‫sini kita tidak benar-benar memiliki nilai penyelesaian yang berarti.

259
00:11:21,950 --> 00:11:24,240
‫Jadi, kami tidak ingin

260
00:11:24,240 --> 00:11:26,580
‫ada argumen untuk fungsi panggilan balik

261
00:11:26,580 --> 00:11:31,433
‫ini di sini yang ingin kami lakukan hanyalah mencatat string ini, bukan?

262
00:11:32,640 --> 00:11:34,970
‫Jadi sekarang kita benar-benar bisa menyingkirkan

263
00:11:36,450 --> 00:11:37,920
‫ini dan oke.

264
00:11:37,920 --> 00:11:39,490
‫Jadi, di sini kita melihat

265
00:11:39,490 --> 00:11:41,090
‫sekarang bahwa itu sebenarnya sudah bekerja.

266
00:11:41,090 --> 00:11:43,080
‫Dan sekali lagi trik

267
00:11:43,080 --> 00:11:46,050
‫untuk dapat merantai semua metode ini

268
00:11:46,050 --> 00:11:49,360
‫di sini adalah mengembalikan janji sebelum memanggil masing-masing.

269
00:11:49,360 --> 00:11:52,360
‫Jadi yang ini di sini jelas mengembalikan janji di sini

270
00:11:52,360 --> 00:11:55,320
‫sehingga kita bisa menghubungkan metode then di atasnya.

271
00:11:55,320 --> 00:11:56,860
‫Kemudian potongan kode ini

272
00:11:56,860 --> 00:11:58,110
‫di sini

273
00:11:58,110 --> 00:12:00,630
‫akan mengembalikan janji sehingga kita dapat menggunakannya.

274
00:12:00,630 --> 00:12:02,920
‫Kemudian potongan kode ini

275
00:12:02,920 --> 00:12:07,320
‫akan mengembalikan janji sehingga kita dapat menggunakannya lagi, oke?

276
00:12:07,320 --> 00:12:09,010
‫Jadi itulah rahasianya.

277
00:12:09,010 --> 00:12:10,380
‫Berikan simpanan lagi

278
00:12:10,380 --> 00:12:13,500
‫dan di sini kita melihat bahwa rasnya masih labrador.

279
00:12:13,500 --> 00:12:16,640
‫Kami melihat bahwa ini di sini adalah tautannya, mari

280
00:12:16,640 --> 00:12:19,180
‫ke sini dan konfirmasikan bahwa ini di

281
00:12:19,180 --> 00:12:21,300
‫sini memang sama dengan ini.

282
00:12:21,300 --> 00:12:26,050
‫Dan itu berhasil menulis string ke file teks menggunakan

283
00:12:26,050 --> 00:12:30,717
‫fungsi file tulis yang kami janjikan, oke.

284
00:12:30,717 --> 00:12:34,240
‫Dan pada akhirnya kita memiliki penangan kesalahan ini.

285
00:12:34,240 --> 00:12:38,060
‫Dan keindahannya di sini adalah bahwa untuk semua rantai

286
00:12:38,060 --> 00:12:39,430
‫ini kemudian penangan

287
00:12:39,430 --> 00:12:43,020
‫pada akhirnya, kita hanya membutuhkan satu penangan tangkapan.

288
00:12:43,020 --> 00:12:44,980
‫Jadi satu fungsi menangani

289
00:12:44,980 --> 00:12:48,910
‫kesalahan yang berasal dari salah satu dari tiga janji, oke.

290
00:12:48,910 --> 00:12:52,090
‫Mari kita sebenarnya hanya mencatat kesalahan ke konsol

291
00:12:52,090 --> 00:12:53,900
‫dan mari kita coba,

292
00:12:53,900 --> 00:12:56,160
‫misalnya, mengubah file ini di sini.

293
00:12:56,160 --> 00:12:57,980
‫Sebenarnya bukan filenya,

294
00:12:57,980 --> 00:13:01,940
‫tapi saya akan mengubah nama file di sini, simpan

295
00:13:01,940 --> 00:13:06,150
‫dan sekarang kita lihat saya tidak dapat menemukan file itu.

296
00:13:06,150 --> 00:13:07,970
‫Jadi dari mana itu berasal?

297
00:13:07,970 --> 00:13:09,720
‫Itu muncul

298
00:13:09,720 --> 00:13:13,410
‫di sini dari memanggil fungsi tolak, oke?

299
00:13:13,410 --> 00:13:16,320
‫Jadi kami memiliki kesalahan di sini karena kami tidak dapat

300
00:13:16,320 --> 00:13:18,890
‫menemukan file dan kami memanggil fungsi penolakan.

301
00:13:18,890 --> 00:13:22,600
‫Dan fungsi penolakan itu kemudian akan menandai janji ini di sini

302
00:13:23,850 --> 00:13:25,720
‫jadi ingat ini adalah janji.

303
00:13:25,720 --> 00:13:27,780
‫Ini akan menandainya sebagai ditolak.

304
00:13:27,780 --> 00:13:30,870
‫Dan oleh karena itu, fungsi catch dipanggil.

305
00:13:30,870 --> 00:13:33,260
‫Dan kemudian kami mencatat kesalahan itu ke konsol.

306
00:13:33,260 --> 00:13:36,313
‫Dan hasilnya adalah apa yang dapat Anda lihat di sini.

307
00:13:37,360 --> 00:13:40,830
‫Oke, mari kita pasang kembali sekarang

308
00:13:40,830 --> 00:13:41,900
‫berfungsi.

309
00:13:41,900 --> 00:13:43,920
‫Sekarang mari masuk ke file,

310
00:13:43,920 --> 00:13:45,880
‫buat anjing yang tidak ada

311
00:13:50,010 --> 00:13:54,320
‫dan sekarang, oh, di sini kita memiliki kesalahan besar yang aneh dan

312
00:13:54,320 --> 00:13:57,583
‫itu karena kami hanya mencatat seluruh kesalahan dan bukan

313
00:13:57,583 --> 00:14:00,700
‫pesan kesalahan seperti yang kami lakukan sebelumnya tetapi tidak

314
00:14:00,700 --> 00:14:01,723
‫tidak masalah.

315
00:14:03,500 --> 00:14:05,203
‫Sekarang simpan di sini

316
00:14:06,170 --> 00:14:07,220
‫sekarang, pasang

317
00:14:07,220 --> 00:14:08,500
‫kembali dan baiklah.

318
00:14:08,500 --> 00:14:10,210
‫Jadi sekarang semuanya bekerja dan

319
00:14:10,210 --> 00:14:12,510
‫kami menyingkirkan bentuk segitiga yang kami

320
00:14:12,510 --> 00:14:14,040
‫miliki dalam kode

321
00:14:14,040 --> 00:14:18,420
‫kami dan sekarang memiliki apa yang disebut struktur datar dari janji rantai.

322
00:14:18,420 --> 00:14:20,600
‫Jadi sekali lagi ini cara yang

323
00:14:20,600 --> 00:14:23,150
‫lebih mudah untuk dikelola dan saya harap Anda

324
00:14:23,150 --> 00:14:25,430
‫dapat mulai menghargai itu dan juga lebih

325
00:14:25,430 --> 00:14:28,120
‫logis untuk berpikir dan bernalar tentang kode seperti ini.

326
00:14:28,120 --> 00:14:29,270
‫Sekarang, dalam

327
00:14:29,270 --> 00:14:31,660
‫kuliah berikutnya kita akan benar-benar mengambil satu

328
00:14:31,660 --> 00:14:33,570
‫langkah lebih jauh dan membuatnya

329
00:14:33,570 --> 00:14:35,210
‫lebih mudah dibaca dan digunakan.

330
00:14:35,210 --> 00:14:36,783
‫Jadi tetap tunggu untuk itu.

