darsga qaytish

Va'da: then va catch

Ushbu kod qismlari tengmi? Boshqacha qilib aytganda, har qanday ishlov beruvchining funktsiyalari uchun ular har qanday sharoitda o’zlarini xuddi shunday tutadimi?

promise.then(f1).catch(f2);

Versus:

promise.then(f1, f2);

Qisqa javob: yo’q, ular teng emas:

Farq shundaki, agar f1 da xato bo’lsa, u holda .catch bu yerda ishlaydi:

promise.then(f1).catch(f2);

…Lekin bu yerda emas:

promise.then(f1, f2);

Buning sababi shundaki, xato zanjirga uzatiladi va ikkinchi kod qismida f1 ostida zanjir yo’q.

Boshqacha qilib aytganda, .then natijalarni/xatolarni keyingi .then/catch ga o’tkazadi. Shunday qilib, birinchi misolda quyida catch, ikkinchisida – yo’q, shuning uchun xato tuzatilgan.