Untuk mendapatkan semula keputusan janji pertengahan dalam rantai janji datar, adalah perlu untuk memutuskan rantaian kepada berasingan segmen.
Daripada bergantung pada parameter panggilan balik tunggal untuk mendapatkan nilai perantaraan, adalah disyorkan untuk menggunakan penggabung janji untuk mencipta nilai komposit yang diingini. Pendekatan ini memastikan aliran kawalan yang jelas dan berstruktur, menjadikan modularisasi menjadi mudah.
Pertimbangkan contoh berikut:
function getExample() { var a = promiseA(…); var b = a.then(function(resultA) { // some processing return promiseB(…); }); return Promise.all([a, b]).then(function([resultA, resultB]) { // more processing return // something using both resultA and resultB }); }
Dalam contoh ini, penggabung janji Promise. semua digunakan untuk mengagregatkan keputusan a dan b. Panggilan balik yang mengikuti Promise.all kemudiannya boleh mengakses dan menggunakan kedua-dua resultA dan resultB untuk membina nilai komposit.
Perpustakaan seperti Q, Bluebird dan apabila menyediakan kaedah pembantu seperti . tersebar untuk memudahkan pemprosesan hasil janji berbilang dalam ES5.
… return Promise.all([a, b]).then(function(results) { results.spread(function(resultA, resultB) { … }); });
Bluebird menawarkan fungsi Promise.join yang berdedikasi sebagai alternatif yang lebih cekap kepada kombinasi Promise.all dan .spread.
… return Promise.join(a, b, function(resultA, resultB) { … });
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Keputusan Janji Perantaraan dalam Rantaian Janji Rata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!