Programming TypeScript


Download 1.81 Mb.
bet145/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   141   142   143   144   145   146   147   148   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

ruxsat bering a : () => Promise < string , TypeError > = // ... ruxsat bering b : ( s : string ) => < son , hech qachon > va'da qiling = // ... ruxsat bering c : () => Promise < boolean , RangeError > = // ...
a ()
. keyin ( b )
. tutish ( e => c ()) // b xato qilmaydi, shuning uchun bu xato bo'lsa
. keyin ( natija => konsol . ma'lumot ( 'Bajarildi' , natija ))
. tutish ( e => konsol . xato ( 'Xato' , e ))
b ning ikkinchi turdagi argumentining turi hech qachon bo'lmaganligi sababli ( b hech qachon xatoga yo'l qo'ymaydi), birinchi catch bandi faqat xatolik yuz berganda chaqiriladi . Ammo e'tibor bering, biz Promise dan foydalanganda , a ni tashlashi mumkinligi haqida qayg'urmasligimiz kerak, lekin b bo'lmaydi — agar a muvaffaqiyatli bo'lsa, biz va'dani b ga o'tkazamiz , aks holda biz birinchi tutib olish bandiga o'tamiz va v'da va'da xaritasini c . Agar c muvaffaqiyatli bo'lsa, biz Bajarildi deb qayd qilamiz va agar u rad etsa, biz yana tutamiz . Bu odatdagi eski try / catch iboralari qanday ishlashini taqlid qiladi va sinxron bo'lganlar uchun try / catch nima qilishini asinxron vazifalar uchun bajaradi ( 8-2-rasmga qarang ).

8-2-rasm. Promise davlat mashinasi
Promise s ishini ko'rib chiqishimiz kerak (xuddi, throw Error('foo') ). Keyin va catch ni amalga oshirganimizda , kodni try / catch es-ga o'rash va catch bandida rad etish orqali buni qilamiz . Biroq, bu bir nechta ta'sirga ega. Bu shuni anglatadiki:

  1. Har bir va'da rad etish imkoniyatiga ega va biz buni statik ravishda tekshira olmaymiz (chunki TypeScript funktsiya imzosida funksiya qaysi istisnolardan voz kechishi mumkinligini ko'rsatishni qo'llab-quvvatlamaydi).

  2. Va'da har doim ham xato bilan rad etilmaydi . Chunki TypeScript JavaScript-ning xatti-harakatlarini meros qilib olishdan boshqa tanlovga ega emas va JavaScript-ni tashlaganingizda siz hamma narsani tashlashingiz mumkin - satr, funktsiya, massiv, Promise va Xato emas - rad etish bo'ladi deb taxmin qila olmaymiz. Xatoning kichik turi . Afsuski, bu biz iste'molchilarni har bir va'da zanjirini sinab ko'rishga/ushlashga majburlamaslik uchun qiladigan qurbonlikdir (bu bir nechta fayl yoki modullarga tarqalishi mumkin!).

xatolarni yozmasdan, va'da turini biroz bo'shatamiz :

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   141   142   143   144   145   146   147   148   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling