Programming TypeScript


funktsiyasi processCommandFromMainThread ( buyruq : buyruq ) { switch


Download 1.81 Mb.
bet153/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   149   150   151   152   153   154   155   156   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

funktsiyasi processCommandFromMainThread (
buyruq : buyruq
) {
switch ( buyruq . turi ) { hol 'sendMessageToThread' : ruxsat bering [ threadID , xabar ] = buyruq . ma'lumotlar
konsol . jurnal ( xabar )
// ...
}
}

Biz har bir buyruq uchun argumentlar bilan birga asosiy ish zarrachasi ishchi ipga yuborishi mumkin bo'lgan barcha mumkin bo'lgan buyruqlar birligini aniqlaymiz.
Bu oddiy uyushma turi. Uzun birlashma turlarini belgilashda quvurlar ( | ) bilan boshlanish bu turlarni o'qishni osonlashtirishi mumkin.
Biz yozilmagan onmessage API orqali yuborilgan xabarlarni qabul qilamiz va ularni qayta ishlashni bizning terilgan processCommandFromMainThread API ga topshiramiz. processCommandFromMainThread asosiy mavzudagi barcha kiruvchi xabarlarni qayta ishlash bilan shug'ullanadi. Bu yozilmagan onmessage API uchun xavfsiz, terilgan oʻram.
Buyruq turi diskriminatsiyalangan birlashma turi bo'lganligi sababli ( 128-betdagi "Ajratilgan birlashma turlari" ga qarang ), biz asosiy mavzu yuborishi mumkin bo'lgan har qanday xabar turini to'liq qayta ishlash uchun kalitdan foydalanamiz.
Keling, tanish EventEmitter- ga asoslangan API orqasida Web ishchilarining qor parchalari API-sini mavhum qilaylik. Shunday qilib, biz kiruvchi va chiquvchi xabarlar turlarining aniqligini kamaytirishimiz mumkin.
Biz NodeJS EventEmitter API ( NPM da voqealar paketi ostida brauzer uchun mavjud ) uchun xavfsiz o‘ramni yaratishdan boshlaymiz:
Import EventEmitter dan "voqealar"
sinf SafeEmitter <
Voqealar uzaytiradi Yozish < PropertyKey , noma'lum [] >
> {

xususiy emitent = yangi EventEmitter chiqarish < K uzaytiradi kaliti Voqealar > (
kanal : K ,
... ma'lumotlar : Voqealar [ K ]
) {
qaytish bu . emitent . chiqarish ( kanal , ... ma'lumotlar )
}
< K _ uzaytiradi kaliti Voqealar > (
kanal : K ,
tinglovchi : (... ma'lumotlar : Voqealar [ K ]) => bekor
) {

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   149   150   151   152   153   154   155   156   ...   206




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