﻿1
00:00:01,140 --> 00:00:02,740
‫-: Sekarang mari kita bicara

2
00:00:02,740 --> 00:00:06,790
‫tentang masalah yang dapat muncul ketika kita menggunakan terlalu banyak fungsi panggilan balik.

3
00:00:06,790 --> 00:00:07,650
‫Dan untuk

4
00:00:07,650 --> 00:00:09,760
‫melakukan itu, kita akan melakukan contoh

5
00:00:09,760 --> 00:00:11,440
‫kecil untuk mengilustrasikan efek ini.

6
00:00:11,440 --> 00:00:14,620
‫Sekarang ingat bahwa jika Anda sudah terbiasa dengan

7
00:00:14,620 --> 00:00:17,130
‫Promises dan Async/Await dan secara

8
00:00:17,130 --> 00:00:18,590
‫umum, Asynchronous Java

9
00:00:18,590 --> 00:00:21,180
‫Script, silakan lewati saja bagian ini

10
00:00:21,180 --> 00:00:23,860
‫dan tandai semua video sebagai selesai

11
00:00:23,860 --> 00:00:26,500
‫sehingga Anda masih bisa menyelesaikan 100

12
00:00:26,500 --> 00:00:27,730
‫persen kursus.

13
00:00:27,730 --> 00:00:28,910
‫Tetapi jika Anda

14
00:00:28,910 --> 00:00:30,350
‫ingin mempelajari semua tentang Asynchronous

15
00:00:30,350 --> 00:00:33,283
‫Java Script dan bagaimana menggunakannya di OJS, mari kita lanjutkan.

16
00:00:35,020 --> 00:00:35,853
‫Jadi

17
00:00:35,853 --> 00:00:38,670
‫silakan dan dapatkan file starter untuk proyek

18
00:00:38,670 --> 00:00:39,940
‫ini dari file kursus.

19
00:00:39,940 --> 00:00:41,510
‫Saya sudah memilikinya di sini di desktop

20
00:00:41,510 --> 00:00:42,940
‫saya, jadi folder ini di sini.

21
00:00:42,940 --> 00:00:44,850
‫Dan hanya file ini di

22
00:00:44,850 --> 00:00:47,950
‫sana, jadi hanya itu yang kita perlukan untuk memulai.

23
00:00:47,950 --> 00:00:50,410
‫Dan saya memilikinya di sini di VS Code yang sudah dibuka

24
00:00:50,410 --> 00:00:51,680
‫dan apa yang akan kita

25
00:00:51,680 --> 00:00:54,680
‫lakukan untuk memulai adalah membuat NX. berkas .JS.

26
00:00:54,680 --> 00:00:56,220
‫Sama seperti sebelumnya.

27
00:00:56,220 --> 00:00:58,130
‫Sekarang yang akan kita lakukan adalah

28
00:00:58,130 --> 00:00:59,920
‫ini, kita akan menggunakan ini,

29
00:00:59,920 --> 00:01:02,320
‫file anjing ini di sini, file teks ini.

30
00:01:02,320 --> 00:01:06,040
‫Dan dari sini kita akan membaca jenis anjing.

31
00:01:06,040 --> 00:01:08,570
‫Dan kemudian kita akan melakukan permintaan

32
00:01:08,570 --> 00:01:12,020
‫HTTP untuk mendapatkan gambar acak anjing dengan jenis ini.

33
00:01:12,020 --> 00:01:14,790
‫Dan kemudian simpan gambar acak itu ke

34
00:01:14,790 --> 00:01:16,440
‫file teks lain.

35
00:01:16,440 --> 00:01:18,410
‫Jadi ini adalah proses tiga langkah

36
00:01:18,410 --> 00:01:20,860
‫dan semua ini akan melibatkan fungsi panggilan balik.

37
00:01:20,860 --> 00:01:23,330
‫Dan pada akhirnya kita akan melihat masalah yang kita miliki

38
00:01:23,330 --> 00:01:25,130
‫ketika kita menggunakan semua fungsi panggilan balik ini

39
00:01:25,130 --> 00:01:26,610
‫di dalam satu sama lain.

40
00:01:26,610 --> 00:01:27,443
‫Oke?

41
00:01:27,443 --> 00:01:29,360
‫Jadi untuk itu kita akan menggunakan

42
00:01:29,360 --> 00:01:31,140
‫API yang cukup populer.

43
00:01:31,140 --> 00:01:33,670
‫Yang lebih seperti API yang menyenangkan.

44
00:01:33,670 --> 00:01:34,980
‫Tapi untuk hal

45
00:01:34,980 --> 00:01:36,620
‫semacam ini ada baiknya untuk menggunakannya.

46
00:01:36,620 --> 00:01:39,800
‫Jadi itu ANJING. CEO, API.

47
00:01:39,800 --> 00:01:42,140
‫Jadi tekan saja Dog API di sini.

48
00:01:42,140 --> 00:01:43,540
‫Kemudian

49
00:01:43,540 --> 00:01:45,360
‫di sini, dokumentasi.

50
00:01:45,360 --> 00:01:48,060
‫Dan yang kami inginkan adalah mendapatkan anjing acak,

51
00:01:48,060 --> 00:01:49,500
‫atau jenis tertentu.

52
00:01:49,500 --> 00:01:52,090
‫Jadi klik berdasarkan breed di sini.

53
00:01:52,090 --> 00:01:52,993
‫Dan di

54
00:01:54,790 --> 00:01:58,620
‫bawah sini, di sini adalah titik akhir API yang akan kita tekan.

55
00:01:58,620 --> 00:02:00,293
‫Jadi ini URL ini di sini.

56
00:02:01,750 --> 00:02:03,530
‫Jadi ketika Anda mengklik ambil di

57
00:02:03,530 --> 00:02:05,580
‫sini, setiap kali Anda mendapatkan gambar baru, oke?

58
00:02:05,580 --> 00:02:06,413
‫Jadi di

59
00:02:06,413 --> 00:02:08,670
‫bagian ini kita sebenarnya akan melakukan permintaan

60
00:02:08,670 --> 00:02:10,420
‫HTTP seperti yang kita pelajari

61
00:02:10,420 --> 00:02:11,850
‫sebelumnya di bagian sebelumnya.

62
00:02:11,850 --> 00:02:12,683
‫Oke.

63
00:02:12,683 --> 00:02:14,090
‫Jadi yang harus

64
00:02:14,090 --> 00:02:17,741
‫kita lakukan adalah membuat permintaan HTTP ke URL ini dan

65
00:02:17,741 --> 00:02:19,890
‫kemudian itu akan mengembalikan gambar kita.

66
00:02:19,890 --> 00:02:20,780
‫Oke?

67
00:02:20,780 --> 00:02:22,820
‫Tapi untuk sekarang, mari kita mulai dengan bagian

68
00:02:22,820 --> 00:02:25,290
‫di mana kita membaca file dan mendapatkan konten dari

69
00:02:25,290 --> 00:02:26,143
‫file itu.

70
00:02:27,900 --> 00:02:31,980
‫Jadi di index. js, sekali lagi kita membutuhkan paket

71
00:02:31,980 --> 00:02:33,440
‫atau modul sistem file.

72
00:02:33,440 --> 00:02:34,273
‫Jadi FS

73
00:02:38,260 --> 00:02:40,743
‫dan membutuhkan modul FS di sini.

74
00:02:41,720 --> 00:02:44,960
‫Dan seperti sebelum kita melakukan fs. readfile dan

75
00:02:44,960 --> 00:02:47,320
‫kami melakukan versi asinkron.

76
00:02:47,320 --> 00:02:48,153
‫Oke.

77
00:02:48,153 --> 00:02:51,150
‫Ingat bahwa di sini kita melewati lokasi file dan

78
00:02:51,150 --> 00:02:52,480
‫kemudian fungsi panggilan

79
00:02:52,480 --> 00:02:55,623
‫balik yang akan dipanggil segera setelah kita selesai membaca file.

80
00:02:56,800 --> 00:02:58,420
‫Jadi kami memiliki string template kami di sini.

81
00:02:58,420 --> 00:03:01,733
‫Dan kemudian kami menggunakan dirname seperti yang kami lakukan sebelumnya.

82
00:03:02,820 --> 00:03:04,670
‫Jadi nama direktori saat ini.

83
00:03:07,778 --> 00:03:08,963
‫/anjing. txt.

84
00:03:11,040 --> 00:03:13,260
‫Oke dan kemudian fungsi panggilan

85
00:03:13,260 --> 00:03:16,303
‫kembali kami yang argumen pertama seperti biasa adalah kesalahan.

86
00:03:19,490 --> 00:03:22,750
‫Dan kemudian data yang sebenarnya ada di file.

87
00:03:22,750 --> 00:03:23,940
‫Dan untuk memastikannya, mari

88
00:03:23,940 --> 00:03:25,393
‫kita log ke konsol tentunya.

89
00:03:27,340 --> 00:03:28,530
‫Jadi string template

90
00:03:28,530 --> 00:03:31,893
‫lain sehingga kami dapat menampilkan data kami dengan baik di sini.

91
00:03:33,200 --> 00:03:34,200
‫Oke.

92
00:03:34,200 --> 00:03:36,040
‫Mulai terminal di

93
00:03:36,040 --> 00:03:37,620
‫sini dan angkat

94
00:03:37,620 --> 00:03:38,870
‫sedikit.

95
00:03:40,120 --> 00:03:42,830
‫Jadi saya menggunakan nodemon seperti yang saya lakukan sebelumnya

96
00:03:42,830 --> 00:03:44,893
‫dan kemudian index. js.

97
00:03:46,220 --> 00:03:48,400
‫Oke jadi breed adalah retriever.

98
00:03:48,400 --> 00:03:51,270
‫Dan itulah yang kita miliki di sini di file ini.

99
00:03:51,270 --> 00:03:56,053
‫Oke jadi retriever adalah jenis yang akan kita cari.

100
00:03:57,390 --> 00:03:59,050
‫Sekarang di dalam fungsi

101
00:03:59,050 --> 00:04:01,520
‫panggilan balik ini, kita ingin melakukan permintaan HTTP

102
00:04:01,520 --> 00:04:03,340
‫yang baru saja kita bicarakan sebelumnya.

103
00:04:03,340 --> 00:04:05,360
‫Dan sebenarnya ada cara untuk

104
00:04:05,360 --> 00:04:06,660
‫melakukannya dengan

105
00:04:06,660 --> 00:04:07,980
‫modul asli tanpa JS.

106
00:04:07,980 --> 00:04:10,850
‫Tetapi lebih mudah menggunakan paket NPM untuk itu.

107
00:04:10,850 --> 00:04:12,100
‫Dan masih banyak lagi,

108
00:04:12,100 --> 00:04:14,560
‫tapi yang akan kita gunakan disebut Super Agent.

109
00:04:14,560 --> 00:04:16,750
‫Nanti kita akan menggunakan yang lain

110
00:04:16,750 --> 00:04:20,710
‫tapi untuk saat ini Super Agent baik-baik saja untuk itu, oke.

111
00:04:20,710 --> 00:04:24,140
‫Dan untuk benar-benar mengunduh modul ini menggunakan NPM, kita

112
00:04:24,140 --> 00:04:27,410
‫akan mulai dengan membuat file paket Jason.

113
00:04:27,410 --> 00:04:28,940
‫Ingat itu?

114
00:04:28,940 --> 00:04:31,120
‫Jadi biarkan saya menyelesaikan ini dan

115
00:04:31,120 --> 00:04:32,703
‫melakukan NPM di dalamnya.

116
00:04:33,780 --> 00:04:36,423
‫Dan tekan saja enter pada semua ini.

117
00:04:37,340 --> 00:04:38,460
‫Ini tidak penting.

118
00:04:38,460 --> 00:04:39,293
‫Oke.

119
00:04:39,293 --> 00:04:40,920
‫Kami hanya ingin paket ini. jason

120
00:04:40,920 --> 00:04:43,370
‫file sehingga benar-benar menyimpan nama paket

121
00:04:43,370 --> 00:04:44,290
‫yang kita gunakan.

122
00:04:44,290 --> 00:04:47,130
‫Jadi kami selalu melakukan itu setiap kali kami memulai proyek baru.

123
00:04:47,130 --> 00:04:48,630
‫Dan sekarang instal NPM,

124
00:04:48,630 --> 00:04:52,240
‫atau kita bisa menggunakan I, yang sama dan kemudian

125
00:04:52,240 --> 00:04:53,490
‫nama paketnya.

126
00:04:53,490 --> 00:04:55,023
‫Jadi tidak ada yang baru di sana kan?

127
00:04:58,510 --> 00:04:59,840
‫Sekarang untuk menggunakan

128
00:04:59,840 --> 00:05:01,270
‫paket ini, kita membuat

129
00:05:01,270 --> 00:05:04,200
‫variabel baru yang kemudian akan berisi fungsi Super Agent

130
00:05:04,200 --> 00:05:06,473
‫yang diperlihatkan modul ini kepada kita.

131
00:05:16,410 --> 00:05:19,350
‫Sekarang mari kita lanjutkan dan benar-benar menggunakan fungsi Agen

132
00:05:19,350 --> 00:05:20,320
‫Super itu.

133
00:05:20,320 --> 00:05:22,180
‫Jadi untuk melakukan permintaan get,

134
00:05:22,180 --> 00:05:24,363
‫kami hanya menggunakan metode get di atasnya.

135
00:05:25,400 --> 00:05:28,400
‫Jadi dapatkan dan kemudian kita membutuhkan URL itu.

136
00:05:28,400 --> 00:05:31,860
‫Oke jadi ini yang saya tunjukkan sebelumnya.

137
00:05:31,860 --> 00:05:32,880
‫Jadi cukup salin

138
00:05:33,870 --> 00:05:34,970
‫dan tempel di sini

139
00:05:35,980 --> 00:05:37,110
‫ke dalam string template.

140
00:05:37,110 --> 00:05:39,870
‫Karena sekarang kita sebenarnya akan mengganti

141
00:05:39,870 --> 00:05:41,830
‫breed ini di sini.

142
00:05:41,830 --> 00:05:43,430
‫Oke, jadi kami tidak

143
00:05:43,430 --> 00:05:45,250
‫menginginkan itu tetapi kami ingin

144
00:05:45,250 --> 00:05:47,840
‫menggunakannya, yang kami dapatkan dari file kami.

145
00:05:47,840 --> 00:05:49,920
‫Jadi dalam hal ini adalah data.

146
00:05:49,920 --> 00:05:50,790
‫Benar?

147
00:05:50,790 --> 00:05:51,750
‫Jadi seperti

148
00:05:51,750 --> 00:05:55,160
‫ini, kita sebenarnya bisa melakukan permintaan HTTP get.

149
00:05:55,160 --> 00:05:57,510
‫Sekarang untuk mendapatkan data,

150
00:05:57,510 --> 00:06:01,970
‫kita sebenarnya juga harus menggunakan metode akhir ini.

151
00:06:01,970 --> 00:06:04,090
‫Dan di sinilah kita akan meneruskan

152
00:06:04,090 --> 00:06:05,240
‫fungsi panggilan balik.

153
00:06:07,210 --> 00:06:09,060
‫Jadi sekali lagi itu adalah kesalahan,

154
00:06:09,060 --> 00:06:10,500
‫panggilan pertama kembali dan

155
00:06:10,500 --> 00:06:12,000
‫kemudian kami meneruskan hasilnya juga.

156
00:06:12,900 --> 00:06:14,660
‫Jadi dalam fungsi

157
00:06:14,660 --> 00:06:15,920
‫ini, pertama-tama

158
00:06:15,920 --> 00:06:18,620
‫mari kita log hasilnya ke konsol.

159
00:06:18,620 --> 00:06:21,920
‫Jadi data yang kita dapatkan ada pada variabel respon.

160
00:06:21,920 --> 00:06:22,997
‫Jadi yang ini di sini.

161
00:06:22,997 --> 00:06:25,960
‫Dan kemudian di atasnya adalah tubuh.

162
00:06:25,960 --> 00:06:29,430
‫Jadi di situlah respon yang sebenarnya.

163
00:06:29,430 --> 00:06:31,830
‫Oke, sekarang mari kita benar-benar pergi ke depan dan menguji itu.

164
00:06:32,780 --> 00:06:35,180
‫Dan sekarang dengan penyimpanan ini, itu benar-benar turun.

165
00:06:35,180 --> 00:06:36,420
‫Jadi sekali

166
00:06:36,420 --> 00:06:39,850
‫lagi itu karena ekstensi sebelumnya yang kita atur tadi.

167
00:06:39,850 --> 00:06:41,170
‫Dan mungkin Anda juga

168
00:06:41,170 --> 00:06:44,520
‫memperhatikan bagaimana ia menggantikan tanda kutip normal yang saya miliki di

169
00:06:44,520 --> 00:06:45,560
‫sini dengan tanda

170
00:06:45,560 --> 00:06:48,810
‫kutip ganda ini dan juga memasukkan titik koma di sini.

171
00:06:48,810 --> 00:06:50,610
‫Dan sebenarnya di bagian terakhir,

172
00:06:50,610 --> 00:06:52,110
‫atau di salah

173
00:06:52,110 --> 00:06:54,130
‫satu bagian terakhir, kami mengaturnya agar

174
00:06:54,130 --> 00:06:56,180
‫kami selalu memiliki tanda kutip tunggal.

175
00:06:56,180 --> 00:06:58,530
‫Jadi untuk menjaga agar kode kita tetap

176
00:06:58,530 --> 00:07:00,060
‫konsisten di sini, mari

177
00:07:00,060 --> 00:07:03,760
‫kita lanjutkan dan dengan sangat cepat membuat file konfigurasi yang lebih cantik.

178
00:07:03,760 --> 00:07:05,293
‫Jadi ingat itu lebih cantik.

179
00:07:08,320 --> 00:07:10,343
‫Kemudian di sana kami memiliki kutipan tunggal.

180
00:07:11,670 --> 00:07:13,023
‫Setel ke benar.

181
00:07:14,470 --> 00:07:17,063
‫Dan juga ingat lebar cetak.

182
00:07:19,140 --> 00:07:20,990
‫Dan atur ke 80.

183
00:07:20,990 --> 00:07:22,373
‫Oke, simpan saja.

184
00:07:23,450 --> 00:07:24,520
‫Simpan yang ini lagi.

185
00:07:24,520 --> 00:07:27,800
‫Dan jadi Anda lihat kami memiliki kutipan tunggal kami sekarang kembali.

186
00:07:27,800 --> 00:07:30,380
‫Jadi itu terlihat jauh lebih bagus menurut saya.

187
00:07:30,380 --> 00:07:32,630
‫Sekali lagi jika Anda tidak suka dengan cara

188
00:07:32,630 --> 00:07:35,000
‫ini, Anda tentu saja dapat menggunakan pengaturan Anda sendiri.

189
00:07:35,000 --> 00:07:36,090
‫Baiklah.

190
00:07:36,090 --> 00:07:36,923
‫Bagaimanapun,

191
00:07:36,923 --> 00:07:38,780
‫potongan kode di sini

192
00:07:38,780 --> 00:07:41,130
‫sekarang seharusnya sudah melakukan permintaan HTTP.

193
00:07:41,130 --> 00:07:41,963
‫Jadi mari

194
00:07:41,963 --> 00:07:43,143
‫kita benar-benar mengujinya.

195
00:07:45,980 --> 00:07:46,910
‫Dan memang,

196
00:07:46,910 --> 00:07:49,530
‫kami benar-benar memiliki gambar ini di sini.

197
00:07:49,530 --> 00:07:50,710
‫Jadi sebenarnya

198
00:07:50,710 --> 00:07:52,660
‫yang kita inginkan ada di

199
00:07:52,660 --> 00:07:54,700
‫dalam sobat ini di properti pesan.

200
00:07:54,700 --> 00:07:55,533
‫Jadi pesan

201
00:07:56,460 --> 00:07:57,293
‫titik.

202
00:07:57,293 --> 00:07:58,390
‫Jadi seperti ini.

203
00:07:58,390 --> 00:08:02,390
‫Jadi di sini kita memiliki gambar retriever kita.

204
00:08:02,390 --> 00:08:05,190
‫Mari kita lanjutkan dan benar-benar mengubah breed di sini.

205
00:08:05,190 --> 00:08:06,660
‫Dan aku tidak terlalu baik dengan anjing.

206
00:08:06,660 --> 00:08:09,890
‫Mari kita gunakan jenis ini di sini yang saya

207
00:08:09,890 --> 00:08:10,860
‫tahu, Labrador.

208
00:08:10,860 --> 00:08:12,460
‫Aku bahkan tidak tahu bagaimana mengatakannya.

209
00:08:15,470 --> 00:08:16,630
‫Tapi saya

210
00:08:16,630 --> 00:08:18,210
‫pikir itu dia, itu ada.

211
00:08:18,210 --> 00:08:20,200
‫Mari kita simpan di sini lagi.

212
00:08:20,200 --> 00:08:22,520
‫Dan sekarang kita memiliki gambar lain.

213
00:08:22,520 --> 00:08:24,730
‫Kami benar-benar dapat mengklik ini di sini dan

214
00:08:24,730 --> 00:08:26,913
‫itu akan membuka gambar itu untuk kami.

215
00:08:29,790 --> 00:08:30,623
‫Oke.

216
00:08:30,623 --> 00:08:33,590
‫Jadi untuk melakukan permintaan HTTP ini di sini, kami

217
00:08:33,590 --> 00:08:35,660
‫membutuhkan data yang kami dapatkan sebelumnya.

218
00:08:35,660 --> 00:08:37,280
‫Jadi potongan data ini.

219
00:08:37,280 --> 00:08:39,890
‫Jadi kami perlu melakukan permintaan ini di

220
00:08:39,890 --> 00:08:42,250
‫dalam fungsi panggilan balik ini dari

221
00:08:42,250 --> 00:08:44,150
‫fungsi membaca file, bukan?

222
00:08:44,150 --> 00:08:46,630
‫Jadi Anda sudah memiliki fungsi panggilan balik di sini.

223
00:08:46,630 --> 00:08:48,883
‫Jadi yang ini di dalam panggilan balik.

224
00:08:49,810 --> 00:08:52,000
‫Tapi sekarang kita benar-benar akan menambahkan satu lagi.

225
00:08:52,000 --> 00:08:54,600
‫Karena sekarang kami ingin menyimpan string ini di sini

226
00:08:54,600 --> 00:08:56,300
‫ke dalam file teks baru.

227
00:08:56,300 --> 00:08:57,870
‫Dan jadi kita akan melakukannya di sini.

228
00:08:57,870 --> 00:09:00,010
‫Dan kemudian itu lagi akan memiliki fungsi

229
00:09:00,010 --> 00:09:01,270
‫panggilan balik lagi.

230
00:09:01,270 --> 00:09:02,243
‫Oke, masuk akal?

231
00:09:03,750 --> 00:09:04,583
‫Jadi

232
00:09:05,607 --> 00:09:06,440
‫fs

233
00:09:07,333 --> 00:09:09,580
‫writefile dan kemudian nama filenya.

234
00:09:09,580 --> 00:09:12,990
‫Sebut saja gambar anjing yang satu itu. teks.

235
00:09:12,990 --> 00:09:15,440
‫Kemudian data yang ingin kita simpan ke file

236
00:09:15,440 --> 00:09:18,430
‫yang diistirahatkan. tubuh. pesan.

237
00:09:18,430 --> 00:09:19,800
‫Dan kemudian fungsi panggilan balik.

238
00:09:19,800 --> 00:09:21,960
‫Dan yang ini tentu saja tidak akan memiliki data

239
00:09:21,960 --> 00:09:23,853
‫apa pun, tetapi kami memiliki kesalahan lagi.

240
00:09:28,500 --> 00:09:30,390
‫Mari kita log sesuatu ke konsol

241
00:09:30,390 --> 00:09:32,140
‫seperti gambar anjing acak yang

242
00:09:32,140 --> 00:09:33,733
‫disimpan ke file.

243
00:09:35,930 --> 00:09:38,010
‫Berikan save, kemudian akan

244
00:09:38,860 --> 00:09:41,950
‫dijalankan kembali dan ini adalah file gambar kita.

245
00:09:41,950 --> 00:09:44,030
‫Dan sebenarnya Anda dapat melihat bahwa kode

246
00:09:44,030 --> 00:09:46,373
‫VS menampilkan gambar itu di sini untuk kami.

247
00:09:48,060 --> 00:09:50,090
‫Berikan lagi simpan di sini, itu

248
00:09:50,090 --> 00:09:52,210
‫kemudian akan menjalankan kembali kode kami

249
00:09:52,210 --> 00:09:54,420
‫dan sekarang kami memiliki, memang kami

250
00:09:54,420 --> 00:09:56,290
‫memiliki gambar yang berbeda.

251
00:09:56,290 --> 00:09:57,230
‫Baiklah.

252
00:09:57,230 --> 00:10:00,000
‫Jadi kode kita benar-benar berfungsi.

253
00:10:00,000 --> 00:10:02,050
‫Mari kita tambahkan pegangan kesalahan kecil

254
00:10:02,050 --> 00:10:03,943
‫di sini jika terjadi kesalahan.

255
00:10:04,830 --> 00:10:08,593
‫Sebagai contoh, katakanlah kita menambahkan beberapa nama aneh di sini.

256
00:10:10,050 --> 00:10:11,120
‫Jalankan ini lagi.

257
00:10:11,120 --> 00:10:13,860
‫Dan sekarang tidak akan dapat menemukan gambar

258
00:10:13,860 --> 00:10:14,700
‫untuk itu.

259
00:10:14,700 --> 00:10:17,683
‫Dan itu akan benar-benar menghasilkan kesalahan di sini.

260
00:10:18,620 --> 00:10:19,620
‫Jadi, kita harus

261
00:10:19,620 --> 00:10:22,300
‫selalu melakukan penanganan kesalahan semacam ini di

262
00:10:22,300 --> 00:10:23,290
‫awal

263
00:10:23,290 --> 00:10:24,943
‫dan mengatakan jika ada kesalahan,

264
00:10:27,060 --> 00:10:29,010
‫dan kita bisa mencatat kesalahan. pesan.

265
00:10:30,247 --> 00:10:31,830
‫Dan sebenarnya kita juga harus mengatakan

266
00:10:31,830 --> 00:10:34,670
‫bahwa kita ingin segera kembali dari fungsi ini jika ada kesalahan.

267
00:10:34,670 --> 00:10:37,330
‫Jadi itu akan kembali dan masuk

268
00:10:37,330 --> 00:10:39,450
‫ke konsol, kesalahan ini.

269
00:10:39,450 --> 00:10:41,550
‫Dan tidak ada lagi yang akan terjadi kemudian.

270
00:10:41,550 --> 00:10:43,840
‫Oke.

271
00:10:43,840 --> 00:10:45,140
‫Jadi dikatakan lagi, tidak ditemukan di sini.

272
00:10:45,140 --> 00:10:46,920
‫Dan itu tidak menyimpan apa pun

273
00:10:46,920 --> 00:10:49,770
‫ke file karena kami sudah kembali dari fungsi di sini.

274
00:10:49,770 --> 00:10:52,870
‫Oke?

275
00:10:52,870 --> 00:10:53,703
‫Dan hal yang sama sebenarnya

276
00:10:53,703 --> 00:10:55,250
‫di sini jika ada kesalahan saat menyimpan file ke disk.

277
00:10:55,250 --> 00:10:59,513
‫Mari kita kembali ke sini, berikan penyelamatan

278
00:11:00,870 --> 00:11:02,173
‫lagi.

279
00:11:03,670 --> 00:11:04,780
‫Dan sekarang ini berfungsi dengan baik lagi.

280
00:11:04,780 --> 00:11:07,923
‫Oke.

281
00:11:08,860 --> 00:11:09,693
‫Jadi ini hanyalah

282
00:11:09,693 --> 00:11:10,526
‫contoh kecil

283
00:11:10,526 --> 00:11:13,100
‫untuk menunjukkan kepada Anda betapa mudahnya berakhir dengan panggilan

284
00:11:13,100 --> 00:11:15,770
‫balik di dalam panggilan balik di dalam panggilan balik.

285
00:11:15,770 --> 00:11:17,100
‫Dan itu tentu saja karena, kita

286
00:11:17,100 --> 00:11:18,390
‫sudah tahu bahwa di

287
00:11:18,390 --> 00:11:20,400
‫Note JS, kita harus selalu menggunakan kode asinkron, bukan?

288
00:11:20,400 --> 00:11:23,160
‫Kami akhirnya menggunakan panggilan balik di dalam

289
00:11:23,160 --> 00:11:25,870
‫panggilan balik di dalam panggilan balik.

290
00:11:25,870 --> 00:11:27,090
‫Dan terkadang itu

291
00:11:27,090 --> 00:11:30,170
‫bisa lebih dalam dari yang kita miliki di sini.

292
00:11:30,170 --> 00:11:31,003
‫Anda tentu saja

293
00:11:31,003 --> 00:11:33,010
‫dapat memiliki 10 level di dalam satu sama lain.

294
00:11:33,010 --> 00:11:34,600
‫Sekarang semua panggilan ini kembali,

295
00:11:34,600 --> 00:11:36,230
‫mereka membuat kode kita terlihat sedikit berantakan.

296
00:11:36,230 --> 00:11:38,920
‫Itu membuatnya sulit untuk dipahami dan juga secara

297
00:11:38,920 --> 00:11:40,760
‫umum, sulit untuk dipertahankan.

298
00:11:40,760 --> 00:11:43,680
‫Sekali lagi mungkin tidak pada level ini dengan hanya tiga panggilan balik

299
00:11:43,680 --> 00:11:45,050
‫di dalam satu sama lain.

300
00:11:45,050 --> 00:11:48,200
‫Tetapi jika kita membuatnya lebih dalam, itu bisa

301
00:11:48,200 --> 00:11:50,300
‫dengan cepat menjadi mimpi

302
00:11:50,300 --> 00:11:53,080
‫buruk untuk mempertahankan kode seperti ini.

303
00:11:53,080 --> 00:11:54,920
‫Dan itulah mengapa pola

304
00:11:54,920 --> 00:11:56,840
‫ini disebut panggilan balik neraka.

305
00:11:56,840 --> 00:11:58,200
‫Sangat mudah

306
00:11:58,200 --> 00:12:01,450
‫untuk mengidentifikasi bentuk segitiga ini dalam kode kita.

307
00:12:01,450 --> 00:12:02,283
‫Itu yang kita miliki di sini.

308
00:12:02,283 --> 00:12:04,050
‫Seperti bentuk segitiga semacam ini.

309
00:12:04,050 --> 00:12:07,170
‫Setiap kali Anda melihat ini, itu pertanda bahwa Anda

310
00:12:07,170 --> 00:12:08,620
‫pada dasarnya sedang

311
00:12:08,620 --> 00:12:10,100
‫dalam panggilan balik neraka.

312
00:12:10,100 --> 00:12:11,970
‫Oke?

313
00:12:11,970 --> 00:12:12,803
‫Dan Anda

314
00:12:12,803 --> 00:12:15,160
‫mungkin akan melihat atau mendengar istilah ini ketika

315
00:12:15,160 --> 00:12:17,100
‫Anda melakukan riset Note JS atau semacamnya.

316
00:12:17,100 --> 00:12:19,000
‫Namun saat ini, ini sebenarnya satu-satunya cara

317
00:12:19,000 --> 00:12:21,200
‫yang kami ketahui, tentang cara menulis kode asinkron

318
00:12:21,200 --> 00:12:22,140
‫pada saat ini.

319
00:12:22,140 --> 00:12:25,350
‫Tapi kita akan menyimpannya di sepanjang sisa

320
00:12:25,350 --> 00:12:26,890
‫bagian kecil ini.

321
00:12:26,890 --> 00:12:29,120
‫Jadi kita akan belajar bagaimana menggunakan

322
00:12:29,120 --> 00:12:30,810
‫sesuatu yang disebut Promises.

323
00:12:30,810 --> 00:12:32,550
‫Dan itu pada akhirnya akan

324
00:12:32,550 --> 00:12:33,820
‫memecahkan masalah kita

325
00:12:33,820 --> 00:12:37,080
‫dan membuat kode kita lebih mudah dibaca dan dipelihara.

326
00:12:37,080 --> 00:12:38,570
‫Jadi mari kita lakukan itu di sisa bagian.

