js中Promise对象实例详解
假设我现在有个实名验证页面,需要验证身份证号码和真实姓名,实名认证是到公安部系统验证(假设在前端验证),验证通过后我再将当前表单信息保存到提交到我自己后台保存;
方法一 不用promise
//外层ajax,校验实名信息$.ajax({ type: "POST", url: "公安部检验真实姓名和身份证接口", dataType:"json", data: {name:"王尼玛",idCardNo:"4405************6543"}, success: function(msg){ if(msg.status) { //真实姓名、身份证号码验证通过,提交表单数据到本系统后台 $.ajax({ type: "POST", url: "/my/info.php", //本系统后台地址 dataType:"json", data: {表单数据}, success: function(msg){ if(msg.success) { //保存成功 } else { //保存失败 } } }); } else { //真实姓名、身份证号码错误 } } });
我们很清楚的看到,以上例子需要嵌套ajax实现,实际需求中,凡是嵌套ajax的代码读起来都会很苦逼(多层更苦逼),当然,有的人会使用同步的ajax实现,但是同步ajax请求时会给用户页面死掉了的感觉【笑哭】;
方法二 使用promise
new Promise(function (resolve, reject) { $.ajax({ type: "POST", url: "公安部检验真实姓名和身份证接口", dataType: "json", data: { name: "王尼玛", idCardNo: "4405************6543" }, success: function (msg) { if (msg.status) { resolve(msg); //真实姓名、身份证号码通过验证,msg会传入then方法的第一个方法参数 } else { reject(msg); //真实姓名、身份证号码未通过验证,msg会传入then方法的第二个方法参数 } } }); }).then(function (resolveMsg) { $.ajax({ type: "POST", url: "/my/info.php", //本系统后台地址 dataType: "json", data: { "表单数据": "表单数据" }, success: function (msg) { if (msg.success) { //保存成功 } else { //保存失败 } } }); } , function (rejectMsg) { //真实姓名、身份证号码错误 });
总结
先说结论:Promise适用于多层嵌套的异步ajax回调;
很明显,区别于方法一的嵌套ajax,方法二的promise结构更清晰,特别是在多层嵌套后,方法二的优势更加明显,多层嵌套后方法一会变成一大坨,非常难看懂,方法二promise可以用:
new Promise().then() .then() .then() .catch();
格式,结构非常清晰的处理;
相关推荐:
Promise的基本使用方法教程
Atas ialah kandungan terperinci js中Promise对象实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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











Sistem pengendalian Windows ialah salah satu sistem pengendalian yang paling popular di dunia, dan versi baharunya Win11 telah menarik perhatian ramai. Dalam sistem Win11, mendapatkan hak pentadbir adalah operasi penting Hak pentadbir membolehkan pengguna melakukan lebih banyak operasi dan tetapan pada sistem. Artikel ini akan memperkenalkan secara terperinci cara mendapatkan kebenaran pentadbir dalam sistem Win11 dan cara mengurus kebenaran dengan berkesan. Dalam sistem Win11, hak pentadbir dibahagikan kepada dua jenis: pentadbir tempatan dan pentadbir domain. Pentadbir tempatan mempunyai hak pentadbiran penuh ke atas komputer tempatan

Penjelasan terperinci tentang operasi bahagi dalam OracleSQL Dalam OracleSQL, operasi bahagi ialah operasi matematik yang biasa dan penting, digunakan untuk mengira hasil pembahagian dua nombor. Bahagian sering digunakan dalam pertanyaan pangkalan data, jadi memahami operasi bahagian dan penggunaannya dalam OracleSQL adalah salah satu kemahiran penting untuk pembangun pangkalan data. Artikel ini akan membincangkan pengetahuan berkaitan operasi bahagian dalam OracleSQL secara terperinci dan menyediakan contoh kod khusus untuk rujukan pembaca. 1. Operasi bahagian dalam OracleSQL

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

Penjelasan terperinci tentang fungsi sistem panggilan sistem Linux() Panggilan sistem ialah bahagian yang sangat penting dalam sistem pengendalian Linux Ia menyediakan cara untuk berinteraksi dengan kernel sistem. Antaranya, fungsi system() adalah salah satu fungsi panggilan sistem yang biasa digunakan. Artikel ini akan memperkenalkan penggunaan fungsi system() secara terperinci dan memberikan contoh kod yang sepadan. Konsep Asas Panggilan Sistem Panggilan sistem ialah satu cara untuk atur cara pengguna berinteraksi dengan kernel sistem pengendalian. Program pengguna meminta sistem pengendalian dengan memanggil fungsi panggilan sistem

Operator modulo (%) dalam PHP digunakan untuk mendapatkan baki pembahagian dua nombor. Dalam artikel ini, kami akan membincangkan peranan dan penggunaan pengendali modulo secara terperinci, dan memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Peranan pengendali modulo Dalam matematik, apabila kita membahagi integer dengan integer lain, kita mendapat hasil bagi dan baki. Sebagai contoh, apabila kita membahagi 10 dengan 3, hasil bahagi ialah 3 dan selebihnya ialah 1. Operator modulo digunakan untuk mendapatkan baki ini. 2. Penggunaan operator modulo Dalam PHP, gunakan simbol % untuk mewakili modulus

Penjelasan terperinci tentang perintah curl Linux Ringkasan: curl ialah alat baris arahan yang berkuasa yang digunakan untuk komunikasi data dengan pelayan. Artikel ini akan memperkenalkan penggunaan asas perintah curl dan memberikan contoh kod sebenar untuk membantu pembaca memahami dan menggunakan arahan dengan lebih baik. 1. Apakah curl? curl ialah alat baris arahan yang digunakan untuk menghantar dan menerima pelbagai permintaan rangkaian. Ia menyokong berbilang protokol, seperti HTTP, FTP, TELNET, dll., dan menyediakan fungsi yang kaya, seperti muat naik fail, muat turun fail, penghantaran data, proksi

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

Numpy ialah perpustakaan pengkomputeran saintifik Python yang menyediakan pelbagai fungsi dan alatan operasi tatasusunan. Apabila menaik taraf versi Numpy, anda perlu menanyakan versi semasa untuk memastikan keserasian Artikel ini akan memperkenalkan kaedah pertanyaan versi Numpy secara terperinci dan memberikan contoh kod tertentu. Kaedah 1: Gunakan kod Python untuk menanyakan versi Numpy Anda boleh membuat pertanyaan versi Numpy menggunakan kod Python Berikut ialah kaedah pelaksanaan dan kod contoh: importnumpyasnpprint(np
