Rumah > hujung hadapan web > tutorial js > Bagaimana Janji Berantai Mengendalikan dan Menyebarkan Penolakan?

Bagaimana Janji Berantai Mengendalikan dan Menyebarkan Penolakan?

Linda Hamilton
Lepaskan: 2024-12-09 07:11:07
asal
999 orang telah melayarinya

How Do Chained Promises Handle and Propagate Rejections?

Janji Berantai tidak Lulus Penolakan

Dalam rantaian janji, penyelesaian janji bergantung pada cara fungsi pengendali ralatnya bertindak balas terhadap penolakan. Kaedah .then() mengembalikan janji baharu untuk hasil fungsi panggil balik. Jika tiada pengendali kejayaan atau ralat diberikan, hasilnya akan dihantar terus ke janji seterusnya.

Jika ralat dikendalikan, janji yang terhasil akan dipenuhi dengan nilai yang dikembalikan daripada pengendali ralat. Untuk membuang semula ralat dan menyebarkannya ke rantaian, buang ralat sebaliknya.

Dalam contoh kedai widget, apabila janji dalam rantaian menerima ralat, ia harus membuangnya ke hadapan untuk memastikan janji berikutnya masuk rantaian tidak menerima nilai kejayaan.

Dalam rantaian pertanyaan pangkalan data, jika ralat berlaku dalam pertanyaan pertama, mengabaikan pengendali ralat akan membenarkan rantaian itu teruskan, walaupun janji-janji berikutnya mungkin tidak menerima nilai yang bermakna.

db.query({ parent_id: value }).then(function(query_result) {
    return db.put({
        parent_id: query_result[0].parent_id
    });
}).then(function(first_value_result) {
    return db.put({
        reference_to_first_value_id: first_value_result.id
    });
}.then(values_successfully_entered);
Salin selepas log masuk

Ringkasnya, untuk mengelakkan janji-janji berikutnya dalam rantaian daripada menerima nilai kejayaan selepas penolakan berlaku, fungsi pengendali ralat harus sama ada membuang kesilapan atau mengembalikan janji yang ditolak.

Atas ialah kandungan terperinci Bagaimana Janji Berantai Mengendalikan dan Menyebarkan Penolakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan