Tidak, saya sudah membersihkan apakah Anda bermain catur?
Jatuh lagi karena Anda menyimpulkan adalah modul penyegaran cepat.
Saya akan terjun ke konsep tidak merekam dan itulah cara bekerja dengan kode sinkron.
Dan untuk itu, kita, pertama-tama harus mengerti apa itu kode asinkron.
Katakanlah saya mengatur timer dengan set timeout, yang merupakan fungsi yang dibangun ke simpul J.
S di sana.
Kami mendefinisikan fungsi yang harus dijalankan setelah penghitung waktu tertentu kedaluwarsa.
Di sini, saya akan menggunakan fungsi panah.
Anda bisa menggunakan fungsi bernama, apa pun yang Anda suka.
Argumen kedua adalah timer.
Katakanlah dua detik.
Anda mengekspresikannya dalam milidetik.
Jadi dua detik adalah dua ribu milidetik di dalamnya.
Semua hanya terkunci.
Timer selesai.
Jika saya sekarang menjalankan file ini selama dua detik, tidak ada yang terjadi dan kemudian kita melihat Taimur selesai.
Sekarang ini kode asinkron karena kode itu tidak langsung selesai dan bahkan akan menjadi kode kirim jika kita
punya satu milidetik di sana.
Jadi jika ini super cepat, itu tidak terjadi segera dalam langkah kode kita.
Ini seperti jika kita memiliki kunci konsol.
Halo.
Dan log konsol.
Hai, kedua snippet ini adalah kode Synchronoss karena mereka dieksekusi setelah satu sama lain, namun secara teknis,
tentu saja, Noad akan membutuhkan waktu untuk menjalankannya.
Tetapi tidak ada penundaan selain perangkat keras Anda.
Jadi bisa dikatakan, dan karena itu melakukan kode Synchronoss.
Ini adalah kode sakit, tidak sinkron karena tidak dapat dijalankan atau segera diselesaikan.
Dibutuhkan sedikit waktu, bahkan jika itu sangat singkat.
Dan memang, jika saya mengeksekusi file ini seperti ini, Anda melihat helo dan tinggi sebelum Anda melihat Taimur
selesai, meskipun sangat cepat karena tidak ada G. S. dan JavaScript pada umumnya tidak memblokir eksekusi kode Anda
sampai selesai.
Memang, di sini ia akan mengenali fungsi panggilan balik ini.
Jadi fungsi harus dijalankan.
Di masa depan, itu harus memanggil kembali nanti setelah selesai.
Jadi begitu penghitung waktu ini kedaluwarsa di sini, itu hanya akan mengenali itu dan kemudian akan segera
pindah ke baris berikutnya dan akan menjalankan semua kode sinkron dan kemudian jalankan kode async Anda.
Setelah ini selesai, itulah mengapa kita melihat seberapa rendah dan tinggi dulu, meskipun dalam kode kita waktu selesai dicetak
terlebih dahulu.
Dan itu adalah konsep penting yang harus Anda pahami dalam JavaScript dan khususnya simpul.
Dan saya akan kembali ke itu sepanjang kursus karena itu sangat penting.
Sekarang, ketika bekerja dengan hutang dan semuanya meningkat menjadi dua detik, sekali lagi, untuk membuatnya lebih jelas, maka Anda
akan melihat lagi kode sinkronisasi kami berjalan.
Dan kemudian setelah dua detik, kode ini berjalan.
Saat bekerja dengan kode async, kami mendapatkan beberapa teknik yang baik, menanganinya.
Fungsi callback adalah satu, yang tertua, dan Anda akan melihatnya sedikit, terutama perhatikan G. S ..
Tidak ada yang salah dengan itu, tetapi Anda akan menghadapi masalah jika Anda memiliki beberapa operasi async tergantung.
Jadi di sini kita mengatur timer.
Dan sekarang katakanlah saya membuat fungsi lain.
Yang akan saya beri nama Ambil Data.
Dan di sana, saya juga hanya akan mengatur timer, karena saya tidak ingin mengatur beberapa basis data atau sesuatu seperti itu di mana kami
mengambil data dari, kami akan melakukan semua itu untuk semua saja.
Tentu saja.
Jangan khawatir.
Jadi di sini lagi, saya punya timer lain di sana yang membutuhkan waktu satu setengah detik.
Dan sekarang di sini di Ambil Data, saya perlu beberapa cara, well, melakukan sesuatu.
Kapan waktu batin selesai?
Jadi di sini saya benar-benar akan mengharapkan argumen yang akan saya sebut panggilan balik, karena argumen ini akan
berfungsi.
Saya akhirnya akan memanggil fungsi batin saya di sini setelah saya selesai dengan timer.
Dan di sana saya bisa lewat.
Dilakukan sebagai nilai mengetahui tempat di mana penggunaan mengambil data.
Katakanlah itu di dalam set ini.
Waktu.
Panggilan.
Saya memanggil mengambil data seperti ini di sana.
Saya sekarang harus lulus dan tidak pernah menelepon kembali.
Dan di sini.
Saya akan mendapatkan teks yang dilewati oleh panggilan balik dalam fungsi saya ketika dieksekusi.
Jadi kita akan mendapatkan beberapa teks di sini dan saya dapat menghibur mengunci teks itu.
Sekarang, ini mungkin terlihat membingungkan pada akhirnya di sini, saya membuat fungsi saya sendiri, yang
mendapat panggilan balik sehingga saya dapat mendefinisikan fungsi yang harus dijalankan ingin pengatur waktu ini dilakukan dari tempat lain.
Jadi dari tempat ini di sini, apakah fungsi yang secara efektif dilewatkan sebagai panggilan balik.
Dan saya menjalankan fungsi itu di sini.
Sekarang, jika saya menyimpan menjalankan itu.
Membutuhkan dua detik, maka waktu penghitung waktu ini selesai.
Dan setelah satu setengah detik, saya melihat selesai.
Sekarang, jika kita memiliki beberapa panggilan async bersarang, seperti yang kita miliki di sini, kita pergi lebih dalam dan lebih dalam dari perspektif
panggilan balik.
Dan itulah sebabnya kami selalu memiliki fitur yang disebut Janji, yang dapat kami gunakan.
Tidak ada kesempatan.
Sekarang, seringkali kita akan menggunakan paket pihak ketiga yang sudah menggunakan janji untuk kita.
Jadi sintaks yang akan saya tunjukkan sekarang adalah yang Anda jarang harus menulis sendiri.
Itu akan dilakukan oleh paket di belakang layar.
Masih senang mengetahui Anda membuat janji.
Di dalam fungsi data yang diambil, Anda, katakanlah.
Dengan menyimpannya dalam konstanta atau variabel dan kemudian dengan menggunakan kata kunci baru, yang Anda gunakan dalam
JavaScript untuk membuat objek baru berdasarkan konstruktor.
Jika fungsi konstruktor adalah sesuatu yang tidak memberi tahu Anda apa-apa.
Lihatlah beberapa sumber pengenalan dasar untuk JavaScript karena fungsi konstruktor adalah fitur inti dalam
JavaScript.
Dan di sini ia menggunakan fungsi konstruktor janji, yang dibangun dalam JavaScript dan tidak ada G. S ..
Dan sebenarnya juga membutuhkan panggilan kembali, yang sampai ke argumen, menyelesaikan dan menolak.
Anda bisa menamainya sesuka Anda, tetapi ini adalah dua fungsi.
Dan yang pertama berhasil memenuhi janji itu.
Ini berhasil menyelesaikannya.
Yang kedua menolaknya, yang seperti melempar kesalahan.
Anda kemudian mengambil kode async Anda dan memindahkannya ke sana.
Dan lagi, Anda jarang harus menulis ini sendiri.
Sebagian besar paket sudah melakukan itu untuk Anda dan memberi Anda janji yang sudah selesai, yang melakukan semua keajaiban di balik
layar yang tersembunyi jauh dari Anda.
Di sini kita melakukannya secara manual.
Jadi sekarang dan ayah menelepon kembali.
Kami memiliki set fungsi kami sendiri.
Sayangnya, time out tidak memberi kami API janji.
Jadi di sini kita semua harus menggunakan panggilan balik.
Tetapi di mereka.
Kita sekarang tahu tidak lagi menggunakan fungsi panggilan balik yang kita dapatkan.
Saya tidak mendapatkan argumen di sini dan mengambil data lagi.
Sebaliknya, di sini saya menyelesaikannya.
Selesai, katakanlah.
Jadi saya berhasil kembali untuk menyelesaikan nilai sekarang dalam mengambil data.
Setelah mendefinisikan janji, kita hanya harus mengembalikannya.
Dan harap dicatat, ini adalah kode sinkron.
Jadi sebenarnya ini akan dikembalikan segera setelah janji dibuat sebelum untuk kode dalam menjalankan janji,
yang akan terjadi beberapa saat kemudian ketika kita benar-benar memanggil fungsi itu.
Dan saat ini Odyn selesai.
Jadi sekarang kita mengembalikan janji itu di sini.
Dan di tempat kami memanggil data yang diambil, kami sekarang tidak lagi menerima panggilan balik.
Tapi sekarang kita bisa menggunakan itu, yang bisa dipanggil dengan janji dan kita mengembalikan janji.
Dan ini hanya memungkinkan kita untuk sekarang mendefinisikan yang disebut fungsi di sini, yang akan dieksekusi setelah
janji terselesaikan.
Sekarang, apa kelebihannya?
Jika kita memiliki banyak janji seperti itu.
Jadi katakanlah cold fetch data lagi dan kemudian saya tidak perlu menggunakan seperti ini.
Dan karena itu, saya akan berakhir dengan bersarang.
Telepon balik lagi.
Tetapi sebaliknya, di dalam sebuah janji dan kemudian blok adalah bagian dari sebuah janji.
Saya hanya bisa mengembalikan janji baru dan kemudian menambahkan blok berikutnya kemudian setelah yang sebelumnya.
Seperti ini.
Jadi sekarang kita memiliki rantai, lalu blokir.
Yang ini dipanggil pada janji pertama, lalu di blok itu saya mengembalikan janji lain.
Dan bahkan jika itu tidak memberi kita insentif insentif.
Kemudian memblokir kembali itu akan mengubahnya menjadi janji yang langsung diselesaikan.
Dan kemudian kita tambahkan lagi blok lalu, yang sekarang merujuk pada janji ini di sini.
Dan ini lebih mudah dibaca daripada memiliki callback bersarang tak terhingga.
Jadi sekarang jika saya menjalankan itu kita lihat.
Halo.
Hai.
Timer selesai.
Kami selesai.
Dan kami melihatnya selesai lagi karena saya menelepon mengambil data dua kali.
Jadi ini mungkin sulit untuk membungkus kepala Anda untuk pertama kalinya.
Kami akan menggunakannya kembali.
Ikuti kursus ini dan itu akan menjadi lebih jelas.
Sekali lagi, kode ini sebagian besar tidak ditulis oleh Anda, tetapi ini adalah konsep penting yang membuat kode async kami lebih
mudah dikelola.
Selalu ada cara lain untuk mengelola async ini.
Tunggu dua kata kunci khusus yang dapat Anda gunakan dalam JavaScript modern, dan saya akan memiliki bagian terpisah tentang hal
ini menjelang akhir kursus.
Saya ingin memperkenalkannya di sini karena sebenarnya bisa lebih membingungkan daripada sintaksis ini.
Dan saya ingin tetap pada yang ini.
Jangan terlalu banyak memperkenalkan fitur baru pada saat yang bersamaan di sini.
Kode Async adalah sesuatu yang harus Anda pahami.
Dan jika itu tidak sepenuhnya jelas sekarang, itu baik-baik saja, meskipun Anda akan melihat banyak perubahan,
karena kami memiliki banyak peristiwa tidak sinkron dalam kesempatan.
Dan saya akan menjelaskan ini beberapa kali.
Saya juga akan menjelaskan janji lagi.
Saya hanya ingin memastikan bahwa Anda telah melihat ini sekarang dan bahwa Anda kemudian memiliki kesempatan untuk memahami
ini, cara kerjanya, dan bagaimana kami menghadapinya.