Programming TypeScript
Download 1.81 Mb.
|
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)
Hodisa emitentlari
Yuqori darajada hodisa emitentlari kanaldagi hodisalarni chiqarishni va ushbu kanaldagi voqealarni tinglashni qo'llab-quvvatlaydigan API'larni taklif qiladi: interfeys Emitent { // Hodisa yuborish emit ( kanal : string , qiymat : noma'lum ) : bekor // Hodisa yuborilganda biror narsa qiling ustida ( kanal : string , f : ( qiymat : noma'lum ) => bekor ) : bekor } Voqea emitentlari JavaScript-da mashhur dizayn namunasidir. Siz ularni DOM hodisalari, JQuery hodisalari yoki NodeJS EventEmitter modulidan foydalanganda uchratgan bo'lishingiz mumkin . Aksariyat tillarda bu kabi hodisa emitentlari xavfsiz emas. Buning sababi, qiymat turi ma'lum bir kanalga bog'liq va ko'pchilik tillarda bu munosabatlarni ifodalash uchun turlardan foydalana olmaysiz. Tilingiz ham haddan tashqari yuklangan funksiya imzolarini, ham literal turlarini qo‘llab-quvvatlamasa, “bu kanalda shunday turdagi hodisa chiqadi” deb aytishda muammoga duch kelasiz. Hodisalarni chiqarish va har bir kanalda tinglash usullarini yaratadigan makroslar bu muammoni hal qilishning umumiy yechimidir, ammo TypeScript-da siz buni tur tizimidan foydalanib tabiiy va xavfsiz tarzda ifodalashingiz mumkin. mashhur Redis xotiradagi ma'lumotlar ombori uchun Node API bo'lgan NodeRedis mijozidan foydalanyapmiz deylik . Bu shunday ishlaydi: import Redis dan "redis" ruxsatining yangi namunasini yarating mijoz = redis . Client yaratish () mijoz tomonidan chiqarilgan bir nechta voqealarni tinglang . yoqilgan ( 'tayyor' , () => konsol . info ( “Mijoz tayyor” )) mijoz . yoqilgan ( "xato" , ya'ni => konsol . xato ( 'Xatolik yuz berdi!' , e )) mijoz . yoqilgan ( "qayta ulanish" , params => konsol . ma'lumot ( 'Qayta ulanish...' , parametrlar )) on API -dan foydalanganda qayta qo'ng'iroqlarimizda qanday argumentlar kutilishini bilishni istaymiz . Ammo har bir argumentning turi Redis chiqaradigan kanalga bog'liq bo'lganligi sababli, bitta tur uni kesmaydi. Agar biz ushbu kutubxonaning muallifi bo'lganimizda, xavfsizlikka erishishning eng oddiy usuli haddan tashqari yuklangan turdagi bo'lar edi: 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