


Spesifikasi penulisan kod pengaturcaraan tak segerak JavaScript Janji nota kajian_kemahiran javascript
Kerja saya menjadi lebih mudah baru-baru ini, dan saya teringat janji perkataan yang selalu saya lihat sebelum ini, jadi saya dengan sabar mengkajinya untuk seketika.
1: Apa itu Janji? Kenapa ada benda ni?
Pertama sekali, Promise dicipta untuk menyelesaikan masalah penulisan kod dalam pengaturcaraan asynchronous javascript.
Dengan pembangunan JavaScript, terdapat lebih banyak senario tak segerak. Bahagian hadapan mempunyai AJAX, setTimeout, dsb., dan Nod bahagian belakang lebih tidak segerak. Mengikut pendekatan tradisional, pelbagai panggilan balik dibenamkan dalam panggilan balik. Kod boleh mengelirukan.
Pada masa ini, komuniti CommonJS mencadangkan spesifikasi yang dipanggil Promise/A, yang mentakrifkan cara menulis kod tak segerak, termasuk menggunakan when/then/resolve, dsb. untuk mengatur kod tak segerak.
Oleh kerana spesifikasi ini sangat elegan, ramai orang telah melaksanakannya, termasuk Promise() yang disokong secara asli oleh penyemak imbas, ditangguhkan dalam jQuery, when.js, dsb.
Oleh kerana perpustakaan ini semuanya mematuhi spesifikasi ini, cukup untuk mempelajarinya. Saya terutamanya mempelajari jQuery yang ditangguhkan, jadi artikel ini terutamanya bercakap tentang pelaksanaan ini.
Dua: jQuery ditangguhkan
Pertama sekali, mengenai objek tertunda, cikgu Ruan Yifeng telah menulis artikel yang sangat terperinci, alamatnya di sini. Disarankan anda membaca artikel beliau dahulu dan kemudian teruskan membaca.
Seperti yang dinyatakan di atas, janji digunakan untuk menyelesaikan masalah tak segerak (seperti ajax), jadi mari kita bandingkan perbezaannya.
Kaedah penulisan jQuery AJAX klasik ialah
$.ajax({
Taip: "dapat",
url: "",
Kejayaan: fungsi () {},
ralat; fungsi () {}
});
Parameter kejayaan dan ralat ialah fungsi panggil balik apabila kejayaan/kegagalan berlaku.
Dan kini kaedah penulisan AJAX jQuery telah menjadi
$.ajax({
Taip; "dapat",
URL: ""
}).selesai(fungsi () {}).gagal(fungsi () {});
Selepas berjaya, fungsi yang dilakukan akan dipanggil, dan apabila gagal, fungsi yang gagal akan dipanggil.
Apabila anda melihat ini, anda mungkin mempunyai soalan pada objek manakah terletaknya kaedah selesai/gagal? Apakah objek yang $.ajax() kembalikan dan mengapa terdapat dua kaedah ini?
Jawapannya terletak pada objek Tertunda yang diperkenalkan di bawah.
jQuery menyediakan jenis baharu Tertunda. Dijana melalui $.Deferred(). Contohnya
var def = $.Deferred();
Definisi ini mewarisi banyak kaedah, termasuk selesai/gagal/selesaikan/tolak, dsb.
Jadi di sini kita juga tahu bahawa $.ajax() di atas sebenarnya mengembalikan objek ini.
Objek tertunda mempunyai banyak kaedah. Berikut adalah beberapa kaedah yang biasa digunakan. Untuk maklumat lanjut, sila rujuk API
Perkara pertama ialah menjana objek def secara semula jadi. Terdapat banyak kaedah di sini, seperti:
var def = $.Deferred(); // Jana sendiri
$.ajax({}); // Kaedah ajax juga mengembalikan objek def
$.when(); // kaedah bila juga akan mengembalikan objek def
Di sini, $.when() boleh dibincangkan secara berasingan Kaedah ini biasanya menerima satu atau lebih objek tertunda, dan kemudian menentukan keadaan objek yang dikembalikan oleh $.when() berdasarkan status objek tertunda ini. Satu senario penggunaan ialah berbilang permintaan ajax Jika salah satu daripadanya gagal, semuanya akan dianggap gagal Kemudian anda boleh lulus dalam berbilang kaedah ajax dalam $.when(), seperti $.when($.ajax(), $. ajax()). Kemudian $.when akan mengembalikan objek def (dinilai berdasarkan keputusan kedua-dua permintaan ini).
Kemudian selepas mendapat objek def, terdapat satu siri kaedah untuk mengubah keadaan objek ini
def.resolve(); // Tetapkan objek def kepada selesai, dan kemudian fungsi terikat dalam def.done() akan dilaksanakan serta-merta.
def.reject(); // Tetapkan objek def telah gagal, dan kemudian fungsi terikat dalam def.fail() akan dilaksanakan serta-merta.
def.notify(); // Apabila objek def dilaksanakan, panggilan balik yang sepadan ialah def.progress().
Langkah seterusnya ialah menetapkan kaedah panggil balik Susunan yang sepadan dengan yang di atas, iaitu panggilan balik yang akan dipanggil dalam keadaan apa
def.done(); // Sepadan dengan def.resolve();
def.fail(); // Sepadan dengan def.reject();
def.progress(); // Sepadan dengan def.notify();
// Istimewa
def.always(); // Akan dipanggil untuk berjaya atau gagal
def.then(); // Terima pelbagai fungsi, supaya ia berjaya (selesai), kegagalan (gagal) dan kemajuan (kemajuan)
Malah, pada ketika ini, penggunaan objek tertunda adalah hampir sama. Walau bagaimanapun, jQuery juga menyediakan beberapa API
// Semak kelas status semasa
def.isRejected();
def.isResolved();
def.state();
Seperti yang dicadangkan oleh nama-nama API ini, saya tidak akan pergi ke butiran Untuk butiran, anda boleh menyemak dokumentasi API jQuery yang diberikan di atas.
Terdapat kaedah lain, iaitu, kadang-kadang kita ingin memberikan objek def luaran, dan kemudian objek ini boleh menetapkan panggilan balik untuk pelbagai keadaan, tetapi tidak boleh mengubah keadaannya, maka kita boleh menggunakan
def.promise();
Mengembalikan objek janji, yang merupakan subset objek tertunda Anda boleh menggunakan kaedah selesai/gagal dan kaedah lain tiada penyelesaian/tolak Ia adalah untuk melindungi keadaan objek def daripada diubah suai oleh luar.
Pada ketika ini, saya telah selesai bercakap tentang janji Anda kini boleh menggunakannya dalam projek anda sendiri. Selain itu, saya mengucapkan selamat tahun baru kepada anda semua dan mengucapkan selamat Tahun Domba.

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Ringkasan: Pengaturcaraan tak segerak dalam C++ membenarkan berbilang tugas tanpa menunggu operasi yang memakan masa. Gunakan penunjuk fungsi untuk mencipta penunjuk kepada fungsi. Fungsi panggil balik dipanggil apabila operasi tak segerak selesai. Perpustakaan seperti boost::asio menyediakan sokongan pengaturcaraan tak segerak. Kes praktikal menunjukkan cara menggunakan penunjuk fungsi dan boost::asio untuk melaksanakan permintaan rangkaian tak segerak.

Dalam kehidupan seharian, kita sering menghadapi masalah antara janji dan menunaikan. Sama ada dalam hubungan peribadi atau transaksi perniagaan, menunaikan janji adalah kunci untuk membina kepercayaan. Walau bagaimanapun, kebaikan dan keburukan komitmen sering menjadi kontroversi. Artikel ini akan meneroka kebaikan dan keburukan komitmen dan memberi beberapa nasihat tentang cara untuk mengekalkan kata-kata anda. Faedah yang dijanjikan adalah jelas. Pertama, komitmen membina kepercayaan. Apabila seseorang menepati kata-katanya, dia membuat orang lain percaya bahawa dia seorang yang boleh dipercayai. Kepercayaan adalah ikatan yang terjalin antara orang, yang boleh menjadikan orang lebih banyak

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

3 masalah dan penyelesaian biasa dalam pengaturcaraan tak segerak dalam rangka kerja Java: Callback Hell: Gunakan Promise atau CompletableFuture untuk mengurus panggilan balik dalam gaya yang lebih intuitif. Perbalahan sumber: Gunakan primitif penyegerakan (seperti kunci) untuk melindungi sumber yang dikongsi dan pertimbangkan untuk menggunakan koleksi selamat benang (seperti ConcurrentHashMap). Pengecualian tidak terkendali: Mengendalikan pengecualian dalam tugas secara eksplisit dan menggunakan rangka kerja pengendalian pengecualian (seperti CompletableFuture.exceptionally()) untuk mengendalikan pengecualian.

Penjelasan terperinci Promise.resolve() memerlukan contoh kod khusus Promise ialah mekanisme dalam JavaScript untuk mengendalikan operasi tak segerak. Dalam pembangunan sebenar, selalunya perlu untuk memproses beberapa tugas tak segerak yang perlu dilaksanakan mengikut turutan, dan kaedah Promise.resolve() digunakan untuk mengembalikan objek Promise yang telah dipenuhi. Promise.resolve() ialah kaedah statik kelas Promise, yang menerima a

Rangka kerja Go menggunakan ciri serentak dan tak segerak Go untuk menyediakan mekanisme untuk mengendalikan tugas serentak dan tak segerak dengan cekap: 1. Keselarasan dicapai melalui Goroutine, membolehkan berbilang tugasan dilaksanakan pada masa yang sama 2. Pengaturcaraan tak segerak dilaksanakan melalui saluran, yang boleh dilaksanakan tanpa menyekat utas utama Tugas 3. Sesuai untuk senario praktikal, seperti pemprosesan serentak permintaan HTTP, pemerolehan tak segerak data pangkalan data, dsb.

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Kelebihan pengaturcaraan tak segerak dalam PHP termasuk daya pemprosesan yang lebih tinggi, kependaman yang lebih rendah, penggunaan sumber yang lebih baik dan kebolehskalaan. Kelemahan termasuk kerumitan, kesukaran dalam penyahpepijatan dan sokongan perpustakaan terhad. Dalam kes sebenar, ReactPHP digunakan untuk mengendalikan sambungan WebSocket, menunjukkan aplikasi praktikal pengaturcaraan tak segerak.
