﻿1
00:00:01,210 --> 00:00:02,880
‫Instruktur: Sekarang mari kita mulai

2
00:00:02,880 --> 00:00:05,783
‫belajar bagaimana menyelesaikan panggilan balik neraka dengan menggunakan janji.

3
00:00:07,430 --> 00:00:09,750
‫Dan kita akan memulai dengan menggunakan

4
00:00:09,750 --> 00:00:11,260
‫janji untuk permintaan

5
00:00:11,260 --> 00:00:13,010
‫muncul agen alih-alih panggilan balik.

6
00:00:13,010 --> 00:00:16,410
‫Dan ini akan berhasil karena perpustakaan agen super sebenarnya

7
00:00:16,410 --> 00:00:19,770
‫memiliki dukungan untuk janji di luar kotak, jadi

8
00:00:19,770 --> 00:00:21,980
‫kita bisa menggunakannya di sini.

9
00:00:21,980 --> 00:00:25,410
‫Untuk fungsi node, yang berasal dari paket node internal seperti

10
00:00:25,410 --> 00:00:28,395
‫Read File, kita sebenarnya harus membuat sendiri janjinya,

11
00:00:28,395 --> 00:00:31,690
‫dan kita akan melakukannya nanti di kuliah berikutnya, atau

12
00:00:31,690 --> 00:00:32,523
‫lebih.

13
00:00:32,523 --> 00:00:33,356
‫Tapi untuk

14
00:00:33,356 --> 00:00:36,120
‫saat ini, saya ingin Anda belajar bagaimana menepati

15
00:00:36,120 --> 00:00:38,500
‫janji dan baru kemudian bagaimana membangunnya.

16
00:00:38,500 --> 00:00:40,433
‫Oke, sekali lagi kita akan

17
00:00:40,433 --> 00:00:42,350
‫mulai dengan perpustakaan agen

18
00:00:42,350 --> 00:00:45,930
‫super dan lebih khusus lagi dengan metode get di sini.

19
00:00:45,930 --> 00:00:50,220
‫Karena metode ini di sini sebenarnya mengembalikan janji.

20
00:00:50,220 --> 00:00:53,690
‫Jadi tanpa terlalu detail, untuk saat ini, janji

21
00:00:53,690 --> 00:00:55,410
‫pada dasarnya mengimplementasikan

22
00:00:55,410 --> 00:00:57,550
‫konsep nilai masa depan.

23
00:00:57,550 --> 00:01:00,470
‫Jadi pada dasarnya, nilai yang kami harapkan untuk diterima

24
00:01:00,470 --> 00:01:02,270
‫beberapa waktu di masa depan, jadi

25
00:01:02,270 --> 00:01:04,900
‫itu seperti kami mengatakan, "Hei, server," atau "Hei,

26
00:01:04,900 --> 00:01:08,157
‫API, tolong ambilkan saya gambar anjing acak" di latar belakang dan

27
00:01:08,157 --> 00:01:10,617
‫biarkan saya tahu kapan Anda siap "dan kemudian

28
00:01:10,617 --> 00:01:14,243
‫kembalikan data itu. " Oke?

29
00:01:14,243 --> 00:01:16,906
‫Sehingga gambar acak itu adalah nilai yang

30
00:01:16,906 --> 00:01:19,140
‫kita harapkan suatu saat nanti.

31
00:01:19,140 --> 00:01:21,340
‫Dan itulah jenis permintaan yang kami

32
00:01:21,340 --> 00:01:23,650
‫lakukan menggunakan perpustakaan agen super dalam

33
00:01:23,650 --> 00:01:24,740
‫contoh ini.

34
00:01:24,740 --> 00:01:25,573
‫Benar.

35
00:01:25,573 --> 00:01:28,840
‫Dan metode get yang kita gunakan lagi akan

36
00:01:28,840 --> 00:01:32,660
‫secara otomatis dan segera mengembalikan janji segera setelah kita memulai

37
00:01:32,660 --> 00:01:33,493
‫permintaan.

38
00:01:33,493 --> 00:01:35,870
‫Jadi janjinya belum memiliki nilai, karena

39
00:01:35,870 --> 00:01:38,610
‫server sebenarnya masih mendapatkan data dari server

40
00:01:38,610 --> 00:01:41,470
‫secara asinkron di latar belakang tetapi janji itu

41
00:01:41,470 --> 00:01:43,790
‫segera tersedia dan pada dasarnya menjanjikan

42
00:01:43,790 --> 00:01:47,070
‫kita bahwa itu akan mendapatkan beberapa data kembali di

43
00:01:47,070 --> 00:01:48,070
‫masa depan.

44
00:01:48,070 --> 00:01:50,150
‫Oke, apakah itu masuk akal?

45
00:01:50,150 --> 00:01:52,960
‫Dan keadaan janji itu, jadi pada

46
00:01:52,960 --> 00:01:55,660
‫awalnya, adalah janji yang tertunda.

47
00:01:55,660 --> 00:01:58,331
‫Jadi masih pending, masih belum

48
00:01:58,331 --> 00:02:01,050
‫kembali dengan data apa pun, oke?

49
00:02:01,050 --> 00:02:03,480
‫Jadi di sini, pada titik ini, kami sudah memiliki janji

50
00:02:03,480 --> 00:02:04,750
‫bahwa kami dapat bekerja dengannya.

51
00:02:04,750 --> 00:02:07,470
‫Sekarang yang perlu kita lakukan adalah mengkonsumsinya,

52
00:02:07,470 --> 00:02:10,350
‫yang pada dasarnya berarti kita menunggunya kembali

53
00:02:10,350 --> 00:02:11,470
‫dengan datanya.

54
00:02:11,470 --> 00:02:14,513
‫Dan untuk melakukan itu, kami menggunakan metode then di atasnya.

55
00:02:15,710 --> 00:02:19,650
‫Jadi, yang kita lakukan hanyalah menggunakan then and then

56
00:02:19,650 --> 00:02:22,950
‫di sini, kita melewatkan fungsi callback.

57
00:02:22,950 --> 00:02:25,730
‫Fungsi panggilan balik ini kemudian akan dipanggil

58
00:02:25,730 --> 00:02:29,740
‫segera setelah janji selesai melakukan tugasnya dan telah kembali

59
00:02:29,740 --> 00:02:30,980
‫dengan data.

60
00:02:30,980 --> 00:02:33,520
‫Dan data itu kemudian tersedia sebagai argumen untuk

61
00:02:33,520 --> 00:02:34,630
‫panggilan balik itu.

62
00:02:34,630 --> 00:02:36,380
‫Sekarang saya suka menyebutnya sebagai hasil.

63
00:02:39,270 --> 00:02:42,140
‫Jadi, sekali lagi dalam fungsi panggilan balik yang kita miliki

64
00:02:42,140 --> 00:02:44,690
‫di sini kita kemudian memiliki data yang tersedia.

65
00:02:44,690 --> 00:02:47,962
‫Jadi mari kita ambil semua ini di sini dan

66
00:02:47,962 --> 00:02:50,830
‫masukkan ke dalam fungsi panggilan balik ini

67
00:02:50,830 --> 00:02:52,423
‫dan singkirkan ini.

68
00:02:53,530 --> 00:02:55,350
‫Jadi kita tidak lagi membutuhkan

69
00:02:55,350 --> 00:02:57,110
‫itu, dan menyelamatkannya.

70
00:02:57,110 --> 00:03:00,380
‫Sekarang Anda mungkin berpikir, kami masih menggunakan

71
00:03:00,380 --> 00:03:04,510
‫panggilan balik di sini, dan ya, itu memang benar.

72
00:03:04,510 --> 00:03:07,650
‫Jadi ini tidak terlihat seperti perubahan besar untuk saat

73
00:03:07,650 --> 00:03:10,530
‫ini, tetapi setelah kami mengubah seluruh contoh di

74
00:03:10,530 --> 00:03:11,770
‫sini menjadi janji,

75
00:03:11,770 --> 00:03:15,657
‫Anda akan melihat dampak besar yang akan terjadi pada kode kami.

76
00:03:15,657 --> 00:03:19,320
‫Jadi pada dasarnya jika kita memiliki banyak janji, kita akan

77
00:03:19,320 --> 00:03:22,700
‫dapat menghubungkan panggilan balik ini ke satu sama

78
00:03:22,700 --> 00:03:24,150
‫lain alih-alih menumpuknya.

79
00:03:24,150 --> 00:03:26,343
‫Yang sudah merupakan peningkatan besar.

80
00:03:27,370 --> 00:03:29,520
‫Sekarang satu hal yang saya lupa

81
00:03:29,520 --> 00:03:32,850
‫sebutkan sebelumnya adalah bahwa janji segera setelah kembali dengan

82
00:03:32,850 --> 00:03:34,980
‫data disebut janji yang diselesaikan.

83
00:03:34,980 --> 00:03:37,180
‫Jadi pada awalnya itu adalah janji yang

84
00:03:37,180 --> 00:03:39,160
‫tertunda dan ketika berhasil mendapatkan

85
00:03:39,160 --> 00:03:41,180
‫data, itu adalah janji yang diselesaikan.

86
00:03:41,180 --> 00:03:44,600
‫Namun, janji yang diselesaikan mungkin tidak selalu

87
00:03:44,600 --> 00:03:47,670
‫berhasil karena mungkin ada kesalahan.

88
00:03:47,670 --> 00:03:50,895
‫Jadi kami mengatakan bahwa janji yang telah diputuskan

89
00:03:50,895 --> 00:03:52,510
‫dapat dipenuhi atau ditolak.

90
00:03:52,510 --> 00:03:55,680
‫Janji yang dipenuhi sebenarnya memiliki hasil yang ingin

91
00:03:55,680 --> 00:03:56,513
‫kita gunakan.

92
00:03:56,513 --> 00:04:00,860
‫Sedangkan janji yang ditolak adalah ketika ada kesalahan.

93
00:04:00,860 --> 00:04:03,050
‫Jadi ingatlah situasi yang kita alami

94
00:04:03,050 --> 00:04:05,950
‫sebelumnya di mana kita memiliki jenis anjing yang salah.

95
00:04:05,950 --> 00:04:07,750
‫Jadi dalam hal ini, kami

96
00:04:07,750 --> 00:04:11,840
‫mengalami kesalahan, dan kami menangani kesalahan itu menggunakan potongan kode ini di sini.

97
00:04:11,840 --> 00:04:12,673
‫Oke.

98
00:04:12,673 --> 00:04:14,980
‫Nah masalahnya dengan metode this

99
00:04:14,980 --> 00:04:18,160
‫then di sini sebenarnya hanya menangani janji yang terpenuhi

100
00:04:18,160 --> 00:04:20,770
‫tetapi tidak melakukan apa-apa jika ada kesalahan,

101
00:04:20,770 --> 00:04:23,640
‫karena untuk itu, kami sebenarnya memiliki metode lain.

102
00:04:23,640 --> 00:04:25,790
‫Jadi mekanisme lain untuk menangani itu.

103
00:04:25,790 --> 00:04:27,840
‫Dan itu adalah metode menangkap.

104
00:04:27,840 --> 00:04:29,960
‫Jadi setelah metode then, kita

105
00:04:29,960 --> 00:04:32,753
‫dapat menghubungkan metode lain yang disebut catch.

106
00:04:34,390 --> 00:04:35,223
‫Oke.

107
00:04:35,223 --> 00:04:38,350
‫Jadi yang ini akan dipanggil jika ada kesalahan.

108
00:04:38,350 --> 00:04:42,243
‫Jadi di sini, kita sebenarnya memiliki akses ke objek kesalahan itu.

109
00:04:44,480 --> 00:04:46,640
‫Jadi sekarang mari kita lanjutkan, ambil

110
00:04:46,640 --> 00:04:48,590
‫potongan kode ini, dan taruh

111
00:04:48,590 --> 00:04:49,423
‫di

112
00:04:49,423 --> 00:04:52,290
‫sini, dan sekarang kita bisa menyingkirkan ini.

113
00:04:52,290 --> 00:04:54,310
‫Karena sebenarnya dalam metode

114
00:04:54,310 --> 00:04:56,330
‫then ini, kami tidak

115
00:04:56,330 --> 00:04:59,000
‫memiliki informasi apakah ada kesalahan atau tidak

116
00:04:59,000 --> 00:05:01,620
‫karena hanya dipanggil jika janji berhasil.

117
00:05:01,620 --> 00:05:03,440
‫Jadi jika itu adalah janji yang terpenuhi.

118
00:05:03,440 --> 00:05:07,120
‫Oke, jadi ini bagus untuk memisahkan kedua kasus

119
00:05:07,120 --> 00:05:09,870
‫ini secara otomatis untuk kita.

120
00:05:09,870 --> 00:05:12,400
‫Jadi alih-alih memiliki penanganan aneh yang

121
00:05:12,400 --> 00:05:13,470
‫kita miliki

122
00:05:13,470 --> 00:05:17,400
‫sebelumnya, kita cukup menulis semua logika untuk kasus yang berhasil

123
00:05:17,400 --> 00:05:19,080
‫yang merupakan yang paling

124
00:05:19,080 --> 00:05:21,900
‫biasa karena kita biasanya mengharapkan semuanya bekerja

125
00:05:21,900 --> 00:05:24,550
‫dengan baik, tetapi jika ada kesalahan, kita

126
00:05:24,550 --> 00:05:29,336
‫dapat memasukkan beberapa logika lain di sini ke penangan kesalahan ini di sini.

127
00:05:29,336 --> 00:05:32,370
‫Jadi kami memisahkannya dengan baik.

128
00:05:32,370 --> 00:05:33,853
‫Mari kita ubah lagi di sini.

129
00:05:36,030 --> 00:05:38,493
‫Berikan satu ini simpanan lain untuk menjalankannya lagi.

130
00:05:39,450 --> 00:05:41,710
‫Jadi di sini kami memiliki Not Found,

131
00:05:41,710 --> 00:05:45,720
‫dan Anda melihat bahwa sebenarnya ia memasukkan metode tangkap ini di sini

132
00:05:45,720 --> 00:05:47,860
‫dan tidak melakukan hal apa

133
00:05:47,860 --> 00:05:50,270
‫pun yang ada dalam metode ini kemudian.

134
00:05:50,270 --> 00:05:52,980
‫Sekarang lanjutkan dan perbaiki ini di sini,

135
00:05:52,980 --> 00:05:53,813
‫tutup,

136
00:05:53,813 --> 00:05:54,900
‫simpan yang ini,

137
00:05:54,900 --> 00:05:55,910
‫dan ini dia.

138
00:05:55,910 --> 00:05:58,620
‫Jadi begitulah cara kita mengkonsumsi janji.

139
00:05:58,620 --> 00:06:01,870
‫Jadi kami mulai dengan metode ini di sini

140
00:06:01,870 --> 00:06:04,280
‫yang mengembalikan janji dan seterusnya, kami

141
00:06:04,280 --> 00:06:06,160
‫dapat merantai metode kemudian

142
00:06:06,160 --> 00:06:08,810
‫yang pada dasarnya menangani kasus yang berhasil,

143
00:06:08,810 --> 00:06:12,060
‫dan kemudian pada akhirnya, kami juga merantai metode

144
00:06:12,060 --> 00:06:16,090
‫tangkap yang menangani yang tidak berhasil, jadi yang ditolak, janji.

145
00:06:16,090 --> 00:06:19,860
‫Tapi seperti yang saya katakan sebelumnya, jenis ini masih terlihat

146
00:06:19,860 --> 00:06:20,930
‫seperti sebelumnya.

147
00:06:20,930 --> 00:06:21,763
‫Benar?

148
00:06:21,763 --> 00:06:25,000
‫Jadi kami masih memiliki fungsi panggilan balik ini di

149
00:06:26,180 --> 00:06:28,440
‫sini sehingga semua fungsi panggilan balik

150
00:06:28,440 --> 00:06:32,520
‫ini dan juga di sini di dalam metode kami, kami memiliki fungsi

151
00:06:32,520 --> 00:06:34,600
‫panggilan balik ini dari writeFile.

152
00:06:34,600 --> 00:06:37,663
‫Jadi mari kita lanjutkan dan perbaiki itu di video berikutnya.

