Programming TypeScript
Download 1.81 Mb.
|
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: 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). 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling