﻿1
00:00:01,210 --> 00:00:02,370
‫Instruktur: Jadi,

2
00:00:02,370 --> 00:00:03,980
‫Anda telah mempelajari cara

3
00:00:03,980 --> 00:00:05,970
‫menggunakan Async/Menunggu tetapi sebenarnya ada sedikit

4
00:00:05,970 --> 00:00:09,240
‫lagi yang harus dipelajari tentang cara kerja fungsi Async.

5
00:00:09,240 --> 00:00:10,613
‫Jadi mari kita lakukan itu sekarang.

6
00:00:12,140 --> 00:00:15,080
‫Untuk memahami sedikit lebih baik apa yang terjadi di sini, mari

7
00:00:15,080 --> 00:00:18,330
‫kita coba menambahkan beberapa konsol. log setelah dan

8
00:00:18,330 --> 00:00:21,333
‫sebelum memanggil fungsi Async di sini.

9
00:00:22,640 --> 00:00:24,520
‫Oke, jadi konsol. log

10
00:00:26,310 --> 00:00:27,940
‫Jadi langkah pertama

11
00:00:29,686 --> 00:00:31,383
‫akan mendapatkan foto

12
00:00:32,340 --> 00:00:33,360
‫anjing, oke.

13
00:00:33,360 --> 00:00:34,763
‫Dan kemudian nomor dua.

14
00:00:36,690 --> 00:00:37,730
‫Di

15
00:00:37,730 --> 00:00:42,410
‫sini katakan saja, selesai mendapatkan foto anjing.

16
00:00:42,410 --> 00:00:44,433
‫Oke. Jadi mari kita simpan.

17
00:00:45,460 --> 00:00:47,570
‫Dan whoa, apa yang terjadi di sini.

18
00:00:47,570 --> 00:00:50,160
‫Kami memiliki dua konsol ini. log sebelum

19
00:00:50,160 --> 00:00:54,120
‫semua log yang berasal dari fungsi Async.

20
00:00:54,120 --> 00:00:56,346
‫Jadi kami memiliki satu, dua untuk yang ini

21
00:00:56,346 --> 00:00:57,900
‫dan yang ini dan

22
00:00:57,900 --> 00:00:59,610
‫hanya setelah itu kami memiliki log

23
00:00:59,610 --> 00:01:01,530
‫yang berasal dari gambar get dog.

24
00:01:01,530 --> 00:01:03,290
‫Apakah itu yang Anda harapkan?

25
00:01:03,290 --> 00:01:06,320
‫Jadi jika tidak, mari kita analisis apa yang terjadi di sini.

26
00:01:06,320 --> 00:01:09,650
‫Seperti yang saya katakan sebelumnya, fungsi Async ini

27
00:01:09,650 --> 00:01:11,940
‫sebenarnya berjalan di latar belakang.

28
00:01:11,940 --> 00:01:15,160
‫Karena begitulah seharusnya fungsi

29
00:01:15,160 --> 00:01:17,150
‫Async berperilaku.

30
00:01:17,150 --> 00:01:18,960
‫Benar, itu masuk akal?

31
00:01:18,960 --> 00:01:21,623
‫Jadi kita tidak bisa hanya menghentikan kode di sini.

32
00:01:22,470 --> 00:01:24,920
‫Jadi segera setelah kita menekan fungsi

33
00:01:24,920 --> 00:01:29,440
‫ini, kita tidak bisa begitu saja menghentikan eksekusi thread utama kita di sini.

34
00:01:29,440 --> 00:01:30,273
‫Benar?

35
00:01:30,273 --> 00:01:32,750
‫Dan itulah filosofi keseluruhan dari jangan

36
00:01:32,750 --> 00:01:34,120
‫blokir log peristiwa.

37
00:01:34,120 --> 00:01:37,270
‫Jadi kita perlu mendapatkan beberapa gambar anjing dari

38
00:01:37,270 --> 00:01:40,550
‫API, tapi itu bukan alasan untuk menghentikan eksekusi kode.

39
00:01:40,550 --> 00:01:42,840
‫Jadi untuk memblokir log peristiwa.

40
00:01:42,840 --> 00:01:45,770
‫Jadi akibatnya ketika mesin skrip java berhenti, baris

41
00:01:45,770 --> 00:01:48,480
‫kode ini di sini, itu hanya akan

42
00:01:48,480 --> 00:01:51,220
‫memindahkan fungsi get dog pic ke latar belakang

43
00:01:51,220 --> 00:01:53,230
‫dan langsung ke baris berikutnya.

44
00:01:53,230 --> 00:01:55,850
‫Jadi konsol kedua ini. masuk di sini.

45
00:01:55,850 --> 00:01:59,890
‫Jadi masuk akal bahwa pertama string ini di sini akan dicatat,

46
00:01:59,890 --> 00:02:01,990
‫kemudian akan mulai menjalankan fungsi ini,

47
00:02:01,990 --> 00:02:05,270
‫kemudian segera akan mencatat baris kode ini dan sementara

48
00:02:05,270 --> 00:02:08,470
‫itu, kita membaca file ini di latar belakang, dan

49
00:02:08,470 --> 00:02:10,390
‫segera setelah itu siap, ia

50
00:02:10,390 --> 00:02:13,370
‫akan mulai mencetak log ini, log ini, dan

51
00:02:13,370 --> 00:02:14,920
‫juga log ini.

52
00:02:14,920 --> 00:02:16,340
‫Jadi itulah yang terjadi di sini.

53
00:02:16,340 --> 00:02:19,760
‫Satu dua, dan kemudian tersisa tiga.

54
00:02:19,760 --> 00:02:21,550
‫Masuk akal? Oke.

55
00:02:21,550 --> 00:02:24,210
‫Kemudian mari kita melangkah lebih

56
00:02:24,210 --> 00:02:28,500
‫jauh, dan benar-benar mengembalikan sesuatu dari fungsi Async kita.

57
00:02:28,500 --> 00:02:31,673
‫Jadi saya mengubah ini di sini menjadi

58
00:02:31,673 --> 00:02:34,740
‫tiga, sehingga dari fungsi ini, kita dapat

59
00:02:35,590 --> 00:02:40,570
‫mengembalikan string yang mengatakan dua, katakanlah siap dan kemudian tambahkan di sini

60
00:02:40,570 --> 00:02:43,410
‫lagi emoji di sini untuk

61
00:02:43,410 --> 00:02:46,430
‫membuatnya sedikit lebih menonjol di konsol kita.

62
00:02:46,430 --> 00:02:47,853
‫Jadi siap di sini.

63
00:02:48,770 --> 00:02:51,063
‫Dan kemudian mari kita simpan itu.

64
00:02:53,100 --> 00:02:55,883
‫Cukup beberapa variabel, tidak peduli apa itu.

65
00:02:59,040 --> 00:03:01,520
‫Dan kemudian log x ke konsol.

66
00:03:01,520 --> 00:03:03,260
‫Jadi mari kita lihat apa yang terjadi.

67
00:03:03,260 --> 00:03:06,050
‫Dan sekarang di sini kita mendapatkan janji

68
00:03:06,050 --> 00:03:10,800
‫aneh ini yang tertunda alih-alih string di sini yang mungkin kita harapkan.

69
00:03:10,800 --> 00:03:14,180
‫Jadi mengapa x ada di sini dan bukan string ini,

70
00:03:14,180 --> 00:03:16,330
‫tetapi janji ini di sini?

71
00:03:16,330 --> 00:03:19,310
‫Nah, ingat bagaimana saya mengatakan di awal

72
00:03:19,310 --> 00:03:21,860
‫video terakhir bahwa fungsi

73
00:03:21,860 --> 00:03:24,630
‫Async sebenarnya mengembalikan janji secara otomatis?

74
00:03:24,630 --> 00:03:27,490
‫Nah, ini dia buktinya.

75
00:03:27,490 --> 00:03:30,830
‫Jadi, alih-alih siap masuk ke konsol pada saat ini, itu

76
00:03:30,830 --> 00:03:33,670
‫hanya memberi tahu kita bahwa x adalah janji yang

77
00:03:33,670 --> 00:03:35,730
‫pada saat ini masih berjalan, dan

78
00:03:35,730 --> 00:03:36,950
‫masih menunggu keputusan.

79
00:03:36,950 --> 00:03:39,140
‫Jadi itu sebabnya dikatakan tertunda di sini.

80
00:03:39,140 --> 00:03:42,460
‫Jadi skrip java tentu saja tidak tahu bahwa x akan

81
00:03:42,460 --> 00:03:45,390
‫menjadi string siap ini di beberapa titik.

82
00:03:45,390 --> 00:03:48,350
‫Jadi itu hanya pindah ke konsol berikutnya. log seperti

83
00:03:48,350 --> 00:03:50,870
‫yang telah kita bahas sebelumnya.

84
00:03:50,870 --> 00:03:53,380
‫Dan pada saat JavaScript benar-benar tahu bahwa

85
00:03:53,380 --> 00:03:57,176
‫x ini di sini harus menjadi strain yang kami kembalikan dengan

86
00:03:57,176 --> 00:03:59,480
‫baik pada saat itu, kode ini di

87
00:03:59,480 --> 00:04:01,570
‫sini telah lama selesai dieksekusi.

88
00:04:01,570 --> 00:04:04,160
‫Tetapi apa yang harus kita lakukan jika

89
00:04:04,160 --> 00:04:06,860
‫kita benar-benar ingin mendapatkan nilai pengembalian itu di sini?

90
00:04:06,860 --> 00:04:09,930
‫Jadi bagaimana jika kita benar-benar ingin mengembalikan string

91
00:04:09,930 --> 00:04:11,950
‫ini dan mencatatnya melalui konsol?

92
00:04:11,950 --> 00:04:14,670
‫Nah, kita harus memperlakukan fungsi Async ini

93
00:04:14,670 --> 00:04:15,980
‫sebagai sebuah janji.

94
00:04:15,980 --> 00:04:18,310
‫Jadi kami akan menggunakan metode

95
00:04:18,310 --> 00:04:21,080
‫DEN di atasnya atau lagi, gunakan Async/Await.

96
00:04:21,080 --> 00:04:23,510
‫Mari saya tunjukkan cara melakukannya.

97
00:04:23,510 --> 00:04:27,840
‫Jadi, alih-alih mencoba menyimpan nilai yang dikembalikan

98
00:04:27,840 --> 00:04:32,513
‫ke variabel, kita bisa menggunakan metode DEN di atasnya.

99
00:04:34,400 --> 00:04:37,113
‫Dan di sinilah kita kemudian dapat menyebutnya x.

100
00:04:38,750 --> 00:04:43,157
‫Jadi konsol. log x jadi seperti yang kita miliki

101
00:04:43,157 --> 00:04:45,850
‫di sini dan kemudian kita juga akan melakukan yang ini

102
00:04:45,850 --> 00:04:47,513
‫di dalam pegangan DEN, oke?

103
00:04:48,511 --> 00:04:49,920
‫Jadi mari kita tinjau apa yang kita lakukan di sini.

104
00:04:49,920 --> 00:04:53,550
‫Jadi dapatkan gambar anjing mengembalikan janji, ingat itu?

105
00:04:53,550 --> 00:04:57,760
‫Dan setiap yang kita punya janji, kita menggunakan metode DEN untuk

106
00:04:57,760 --> 00:05:00,690
‫mendapatkan akses ke nilai masa depan.

107
00:05:00,690 --> 00:05:04,120
‫Jadi nilai yang pada akhirnya akan kembali.

108
00:05:04,120 --> 00:05:08,050
‫Dalam hal ini, ini akan menjadi dua string yang siap.

109
00:05:08,050 --> 00:05:08,883
‫Oke?

110
00:05:08,883 --> 00:05:10,540
‫Jadi jika Anda ingin mendapatkan x

111
00:05:10,540 --> 00:05:14,520
‫untuk itu, kita perlu menggunakan metode DEN seperti yang baru saja kita lakukan di sini.

112
00:05:14,520 --> 00:05:17,370
‫Dan hanya setelah itu kita dapat mencatat

113
00:05:17,370 --> 00:05:19,218
‫string ketiga di sini.

114
00:05:19,218 --> 00:05:21,010
‫Jadi jika kita menyimpannya sekarang

115
00:05:21,010 --> 00:05:23,760
‫seperti ini maka seharusnya berfungsi seperti yang diharapkan.

116
00:05:23,760 --> 00:05:24,890
‫Dan ya memang begitu.

117
00:05:24,890 --> 00:05:28,420
‫Jadi kami memiliki log pertama kami, lalu semua log

118
00:05:28,420 --> 00:05:32,120
‫yang berasal dari fungsi Async kami, lalu yang siap

119
00:05:32,120 --> 00:05:34,795
‫datang dari baris 42 di sini.

120
00:05:34,795 --> 00:05:36,530
‫Dan yang terakhir adalah nomor 3. Sempurna.

121
00:05:36,530 --> 00:05:39,083
‫Dan saya harap itu masuk akal bagi Anda.

122
00:05:40,416 --> 00:05:43,530
‫Sekarang apa yang terjadi jika sebenarnya ada kesalahan?

123
00:05:43,530 --> 00:05:45,853
‫Nah itu sedikit lebih sulit untuk ditangani.

124
00:05:47,149 --> 00:05:50,410
‫Jadi mari kita lagi, menyebabkan kesalahan seperti yang kita lakukan sebelumnya.

125
00:05:50,410 --> 00:05:54,020
‫Tapi Anda lihat sebenarnya kita masih memasukkan metode

126
00:05:54,020 --> 00:05:55,630
‫DEN di sini.

127
00:05:55,630 --> 00:05:58,640
‫Jadi blok ini di sini, oke.

128
00:05:58,640 --> 00:06:03,230
‫Jadi bahkan jika ada kesalahan di sini dalam janji ini

129
00:06:03,230 --> 00:06:06,980
‫pada dasarnya masih diselesaikan sebagai janji yang berhasil.

130
00:06:06,980 --> 00:06:09,720
‫Jadi masih mengembalikan nilai ini di sini.

131
00:06:09,720 --> 00:06:12,560
‫Dan bahkan jika kita menambahkan penangan tangkapan kita di sini,

132
00:06:12,560 --> 00:06:14,373
‫itu tidak akan mengubah fakta itu.

133
00:06:16,040 --> 00:06:18,317
‫Oke, jadi mari kita gunakan catch di

134
00:06:22,760 --> 00:06:26,620
‫sini dan kemudian gunakan console. log dan log kesalahan di sini

135
00:06:26,620 --> 00:06:30,300
‫sehingga Anda dapat melihat bahwa itu masih tidak mencatat kesalahan apa pun.

136
00:06:30,300 --> 00:06:33,620
‫Dan itu lagi karena janji di sini yang

137
00:06:33,620 --> 00:06:36,270
‫berasal dari fungsi Async ini akan

138
00:06:36,270 --> 00:06:38,410
‫tetap ditandai sebagai berhasil.

139
00:06:38,410 --> 00:06:41,170
‫Tetapi jika Anda benar-benar ingin menandainya sebagai

140
00:06:41,170 --> 00:06:44,450
‫ditolak, kami harus melakukan sesuatu yang disebut melempar kesalahan.

141
00:06:44,450 --> 00:06:46,660
‫Jadi mari kita lakukan itu di sini, di blok tangkapan ini.

142
00:06:46,660 --> 00:06:50,250
‫Jadi jika ada kesalahan, kami tidak hanya ingin memasukkannya

143
00:06:50,250 --> 00:06:53,183
‫ke konsol, kami juga ingin membuangnya.

144
00:06:54,830 --> 00:06:59,123
‫Jadi kami menggunakan fungsi JavaScript bawaan yang disebut throw.

145
00:07:00,080 --> 00:07:02,460
‫Dan dengan itu kita bisa melempar kesalahan.

146
00:07:02,460 --> 00:07:06,680
‫Jadi ini sekarang akan menandai seluruh fungsi dari janji ini

147
00:07:06,680 --> 00:07:07,693
‫sebagai ditolak.

148
00:07:08,600 --> 00:07:09,540
‫Oke.

149
00:07:09,540 --> 00:07:12,570
‫Sebenarnya jangan hanya mencatat kesalahan ini,

150
00:07:12,570 --> 00:07:17,210
‫mari kita lakukan kesalahan untuk membuatnya sedikit lebih terlihat,

151
00:07:17,210 --> 00:07:19,932
‫dan sesuatu seperti ledakan mungkin.

152
00:07:19,932 --> 00:07:20,843
‫Ya, sesuatu seperti ini.

153
00:07:22,250 --> 00:07:26,130
‫Oke, jadi mari kita simpan dan lihat apa yang terjadi.

154
00:07:26,130 --> 00:07:29,380
‫Dan bam, jadi sekarang kami memiliki kesalahan kami di sini sebenarnya.

155
00:07:29,380 --> 00:07:31,840
‫Jadi dikatakan saya tidak dapat menemukan file

156
00:07:31,840 --> 00:07:34,480
‫itu, jadi log ini berasal dari log tangkapan

157
00:07:34,480 --> 00:07:38,250
‫ini di sini tetapi juga pada saat yang sama akan menimbulkan kesalahan.

158
00:07:38,250 --> 00:07:40,800
‫Dan jika itu menimbulkan kesalahan, itu akan

159
00:07:40,800 --> 00:07:43,330
‫menandai seluruh janji ini sebagai ditolak.

160
00:07:43,330 --> 00:07:47,410
‫Dan itulah mengapa kami kemudian memasukkan log tangkapan di sini.

161
00:07:47,410 --> 00:07:50,290
‫Yang kemudian, tentu saja, pada gilirannya memicu

162
00:07:50,290 --> 00:07:52,690
‫konsol ini. log kesalahan ini.

163
00:07:52,690 --> 00:07:53,523
‫Oke?

164
00:07:53,523 --> 00:07:56,850
‫Dan ini tentu saja merupakan lapisan kompleksitas yang sama sekali baru.

165
00:07:56,850 --> 00:07:58,240
‫Oke.

166
00:07:58,240 --> 00:08:00,900
‫Tetapi tetap sangat penting untuk memahami cara kerjanya karena

167
00:08:00,900 --> 00:08:03,250
‫hal ini selalu terjadi dalam kehidupan nyata.

168
00:08:03,250 --> 00:08:06,160
‫Jadi, kita perlu mengembalikan nilai dari fungsi Async

169
00:08:06,160 --> 00:08:08,800
‫setiap saat, jadi penting bagi Anda

170
00:08:08,800 --> 00:08:11,880
‫untuk mengetahui cara menangani nilai yang dikembalikan ini.

171
00:08:11,880 --> 00:08:15,100
‫Dalam hal ini, menggunakan DEN dan menangkap.

172
00:08:15,100 --> 00:08:17,550
‫Sekarang, masalahnya adalah ia mencampur

173
00:08:17,550 --> 00:08:19,610
‫janji dengan Async/Menunggu.

174
00:08:19,610 --> 00:08:21,780
‫Jadi kami memiliki Async/Menunggu di

175
00:08:21,780 --> 00:08:24,400
‫sini, lalu tiba-tiba kami kembali menggunakan DEN

176
00:08:24,400 --> 00:08:26,440
‫dan mengejar di sini.

177
00:08:26,440 --> 00:08:30,020
‫Jadi izinkan saya menunjukkan kepada Anda pola lain untuk melakukannya.

178
00:08:30,020 --> 00:08:32,830
‫Oke, jadi mari kita masuk ke bagian ini

179
00:08:32,830 --> 00:08:35,630
‫di sini bukan sebaliknya, lebih seperti ini.

180
00:08:35,630 --> 00:08:39,460
‫Jadi mari kita gunakan Async/Await untuk mengimplementasikan logika ini.

181
00:08:39,460 --> 00:08:42,380
‫Sekarang kita tidak ingin membuat fungsi nama yang sama sekali

182
00:08:42,380 --> 00:08:45,200
‫baru untuk ini, jadi kita akan menggunakan pola terkenal

183
00:08:45,200 --> 00:08:47,140
‫yang saya harap Anda tahu,

184
00:08:47,140 --> 00:08:49,730
‫yang merupakan IIFE, jadi ekspresi fungsi yang segera dipanggil.

185
00:08:49,730 --> 00:08:53,363
‫Oke, jadi dalam tanda kurung, kita mendefinisikan fungsi kita.

186
00:08:55,880 --> 00:08:58,610
‫Seperti ini, dan kemudian kami menyebutnya segera.

187
00:08:58,610 --> 00:08:59,870
‫Ingat itu?

188
00:08:59,870 --> 00:09:03,320
‫Kemudian, dalam hal ini, karena kami ingin menggunakan Async/Await,

189
00:09:03,320 --> 00:09:06,660
‫kami juga mengatakan bahwa itu adalah fungsi Async.

190
00:09:06,660 --> 00:09:09,070
‫Oke, jadi ini terlihat agak aneh di sini,

191
00:09:09,070 --> 00:09:11,940
‫tetapi jika Anda mengambil contoh kursus JavaScript saya, ini

192
00:09:11,940 --> 00:09:14,210
‫sebenarnya akan terlihat familier bagi Anda.

193
00:09:14,210 --> 00:09:16,700
‫Oke, sekali lagi, Anda mendeklarasikan fungsi

194
00:09:16,700 --> 00:09:19,860
‫di dalam tanda kurung dan kemudian langsung memanggilnya fungsi.

195
00:09:19,860 --> 00:09:22,470
‫Jadi dengan cara ini, Anda tidak

196
00:09:22,470 --> 00:09:26,190
‫perlu mendeklarasikan seluruh fungsi nama lagi yang akan Anda

197
00:09:26,190 --> 00:09:27,650
‫panggil nanti.

198
00:09:27,650 --> 00:09:29,087
‫Oke.

199
00:09:29,087 --> 00:09:31,070
‫Sekarang karena kami menggunakan Async/Await,

200
00:09:31,070 --> 00:09:34,623
‫kami menggunakan pola try it catch lagi, seperti sebelumnya.

201
00:09:36,346 --> 00:09:39,660
‫Jadi tangkap, dapatkan akses ke kesalahan di sini, dan kami

202
00:09:39,660 --> 00:09:42,261
‫sebenarnya tidak dapat menghilangkan ini di sini.

203
00:09:42,261 --> 00:09:43,720
‫Jadi meskipun kita tidak ingin menggunakan

204
00:09:43,720 --> 00:09:45,330
‫kesalahan ini, kita tetap harus menuliskannya di sini.

205
00:09:45,330 --> 00:09:46,163
‫Oke.

206
00:09:47,004 --> 00:09:48,420
‫Di versi JavaScript mendatang, ini

207
00:09:48,420 --> 00:09:51,310
‫akan hilang, tetapi untuk saat ini kita perlu melakukannya seperti ini.

208
00:09:51,310 --> 00:09:53,503
‫Jadi di sinilah kesalahan ini akan terjadi.

209
00:09:56,290 --> 00:09:59,213
‫Dan di atas sini, kita akan memiliki semua konsol ini. log.

210
00:10:00,660 --> 00:10:01,593
‫Yang ini,

211
00:10:03,870 --> 00:10:05,003
‫dan yang ini.

212
00:10:06,749 --> 00:10:09,790
‫Dan sekarang saya harap Anda tahu bagaimana

213
00:10:09,790 --> 00:10:12,770
‫sebenarnya mendapatkan nilai dari fungsi Async.

214
00:10:12,770 --> 00:10:14,340
‫Jadi Anda tahu bagaimana melakukannya.

215
00:10:14,340 --> 00:10:17,230
‫Sebenarnya saya akan menjeda video dan memungkinkan Anda untuk

216
00:10:17,230 --> 00:10:19,720
‫mencari tahu bagaimana melakukannya sendiri, oke?

217
00:10:19,720 --> 00:10:21,750
‫Jadi ambillah tantangan kecil itu dan saya akan

218
00:10:21,750 --> 00:10:22,583
‫kembali sebentar lagi.

219
00:10:26,810 --> 00:10:30,270
‫Jadi, apakah Anda berhasil mendapatkan string ini di sini,

220
00:10:30,270 --> 00:10:32,900
‫jadi keduanya siap menjadi variabel x seperti

221
00:10:32,900 --> 00:10:34,510
‫yang kita miliki sebelumnya?

222
00:10:34,510 --> 00:10:35,973
‫Jadi seperti ini di sini?

223
00:10:37,030 --> 00:10:40,110
‫Jadi seperti yang kita lakukan sebelumnya.

224
00:10:40,110 --> 00:10:44,380
‫Anda mendeklarasikan variabel dan kemudian Anda menunggu janji.

225
00:10:44,380 --> 00:10:48,090
‫Dan janjinya, dalam hal ini, adalah mendapatkan foto anjing.

226
00:10:48,090 --> 00:10:48,923
‫Oke?

227
00:10:48,923 --> 00:10:51,260
‫Jadi fungsi ini di sini adalah

228
00:10:51,260 --> 00:10:53,550
‫fungsi Async dan mengembalikan janji.

229
00:10:53,550 --> 00:10:55,850
‫Dan nilai hasil dari janji

230
00:10:55,850 --> 00:10:58,100
‫itu adalah nilai ini

231
00:10:58,100 --> 00:11:01,400
‫di sini, yang dikembalikan, dan dengan menunggu nilai

232
00:11:01,400 --> 00:11:03,880
‫itu, hasilnya adalah string ini.

233
00:11:03,880 --> 00:11:06,710
‫Jadi kami menyimpannya ke dalam x dan tentu saja

234
00:11:06,710 --> 00:11:08,420
‫kami dapat memasukkannya ke konsol.

235
00:11:08,420 --> 00:11:12,260
‫Jadi konsol. log x.

236
00:11:12,260 --> 00:11:14,980
‫Kemudian jika ada kesalahan, itu akan menangkapnya dan mencatatnya

237
00:11:14,980 --> 00:11:16,890
‫ke konsol di sini juga.

238
00:11:16,890 --> 00:11:19,230
‫Jika kita menyimpannya sekarang,

239
00:11:19,230 --> 00:11:22,555
‫maka kita masih mendapatkan kesalahan karena kita

240
00:11:22,555 --> 00:11:26,180
‫menyimpannya di sini, jadi bagian itu masih berfungsi.

241
00:11:26,180 --> 00:11:30,490
‫Memperbaikinya, menyimpannya, dan ini dia.

242
00:11:30,490 --> 00:11:32,790
‫Jadi sekarang berfungsi seperti yang dimaksudkan.

243
00:11:32,790 --> 00:11:35,470
‫Tetapi, sekali lagi, dengan Async/Await jauh lebih bersih,

244
00:11:35,470 --> 00:11:38,433
‫terlihat jauh lebih baik dan juga lebih mudah dipahami.

245
00:11:39,315 --> 00:11:42,577
‫Jadi kami tidak mencampur Async/Menunggu di satu tempat di sini dan

246
00:11:42,577 --> 00:11:45,430
‫kemudian menggunakan DEN dan menangkap di sini seperti yang kami

247
00:11:45,430 --> 00:11:47,543
‫lakukan sebelumnya dengan potongan kode ini.

248
00:11:47,543 --> 00:11:48,570
‫Oke?

249
00:11:48,570 --> 00:11:51,820
‫Jadi dalam kehidupan nyata, hal semacam ini terjadi sepanjang waktu.

250
00:11:51,820 --> 00:11:54,450
‫Jadi kami memiliki fungsi Async dan kami

251
00:11:54,450 --> 00:11:57,500
‫memanggilnya dari fungsi Async lain, dan mungkin kami

252
00:11:57,500 --> 00:11:59,660
‫bahkan memanggil fungsi Async lain

253
00:11:59,660 --> 00:12:02,270
‫dari fungsi Async pertama itu, jadi kami

254
00:12:02,270 --> 00:12:05,420
‫memiliki banyak fungsi Async yang berinteraksi satu sama lain.

255
00:12:05,420 --> 00:12:07,710
‫Jadi sangat penting bagi Anda untuk mengetahui bagaimana

256
00:12:07,710 --> 00:12:08,900
‫semua ini bekerja.

257
00:12:08,900 --> 00:12:11,070
‫Dan sekali lagi untuk rekap, hal

258
00:12:11,070 --> 00:12:14,160
‫yang paling penting untuk diingat adalah bahwa fungsi

259
00:12:14,160 --> 00:12:17,430
‫Async secara otomatis mengembalikan janji, dan nilai yang kita

260
00:12:17,430 --> 00:12:20,800
‫kembalikan dari fungsi Async akan menjadi nilai hasil dari

261
00:12:20,800 --> 00:12:21,890
‫janji itu.

262
00:12:21,890 --> 00:12:24,426
‫Jadi dari sana, kita bisa menanganinya

263
00:12:24,426 --> 00:12:25,810
‫sebagai janji lain.

264
00:12:25,810 --> 00:12:29,070
‫Dan itulah tepatnya yang kami lakukan di sini dengan

265
00:12:29,070 --> 00:12:31,300
‫menunggu janji pertama yang kami buat.

266
00:12:31,300 --> 00:12:32,133
‫Oke?

267
00:12:32,133 --> 00:12:35,000
‫Jadi, cobalah untuk memahami hal ini dan pastikan

268
00:12:35,000 --> 00:12:37,010
‫bahwa Anda benar-benar memahaminya.

269
00:12:37,010 --> 00:12:39,320
‫Karena sepanjang sisa kursus saya akan

270
00:12:39,320 --> 00:12:42,270
‫berasumsi bahwa Anda tahu bagaimana bekerja dengan hal ini.

271
00:12:42,270 --> 00:12:44,730
‫Dan itulah tepatnya mengapa saya

272
00:12:44,730 --> 00:12:48,160
‫membuat bagian ini, untuk menghindarinya sebelum kita benar-benar mulai

273
00:12:48,160 --> 00:12:52,330
‫bekerja tanpa JS dan express, dan semua hal bagus ini.

274
00:12:52,330 --> 00:12:53,250
‫Oke?

275
00:12:53,250 --> 00:12:56,178
‫Jadi kita hampir selesai dengan bagian ini, hanya ada satu hal

276
00:12:56,178 --> 00:12:57,720
‫kecil yang ingin saya tunjukkan

277
00:12:57,720 --> 00:12:58,653
‫di video berikutnya.

