Rumah >hujung hadapan web >tutorial js >Bagaimana Mengurus Keputusan Bergantung dalam Rantai Janji JavaScript?
Cara Mengendalikan Keputusan Bergantung dalam Rantai Janji
Soalan anda menanyakan cara menggunakan hasil sebelumnya dalam urutan permintaan HTTP berasaskan Promise. Untuk menangani perkara ini, mari kita pertimbangkan dahulu pelbagai strategi untuk berkongsi data merentas janji yang bergantung. Pilihan strategi bergantung pada keperluan anda untuk akses kepada semua keputusan terdahulu atau hanya yang terbaharu.
Memberi Hasil Secara Berurutan
Dalam model ini, hasil setiap permintaan diluluskan sebagai hujah kepada yang seterusnya. Walau bagaimanapun, mengakses keputusan sebelumnya menjadi mencabar.
Menetapkan Keputusan kepada Skop Lebih Tinggi
Sebagai alternatif, anda boleh menyimpan hasil dalam pembolehubah dalam skop yang lebih tinggi. Ini membolehkan untuk mengakses semua hasil carian sebelumnya.
Mengumpul Keputusan dalam Objek
Pendekatan ini melibatkan penciptaan objek untuk mengumpul hasil. Setiap permintaan menambahkan hasilnya pada objek, menjadikan semua data sebelumnya tersedia.
Rantai Janji Bersarang
Janji Bersarang mengekalkan akses kepada hasil carian sebelumnya. Setiap lapisan berturut-turut menyediakan skop di mana semua hasil awal boleh diakses.
Memutuskan Rantaian dengan Janji.all()
Jika sesetengah permintaan boleh beroperasi secara bebas, anda boleh menggunakan Promise.all() untuk menunggu penyelesaiannya. Ini membolehkan anda memperoleh keputusannya secara tak segerak.
Menggunakan Async/Await dalam ES7
Dalam ES7, async/wait boleh memudahkan penjujukan operasi tak segerak. Keputusan tersedia dalam skop yang sama, menghapuskan keperluan untuk berbilang pengendali .then().
Memohon pada Contoh Anda
Dalam kes khusus anda, di mana kunci API dihantar antara berbilang permintaan HTTP, anda boleh:
var r1, r2, r3; callhttp("172.16.28.200", payload).then(function(result1) { r1 = result1.data; // Extract the API key return callhttp("172.16.28.200", payload); }).then(function(result2) { r2 = result2.data; // r1 contains the API key from the previous request return callhttp("172.16.28.200", payload); }).then(function(result3) { r3 = result3.data; // r1 and r2 contain the API keys from the previous requests });
Atas ialah kandungan terperinci Bagaimana Mengurus Keputusan Bergantung dalam Rantai Janji JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!