Programming TypeScript
Download 1.81 Mb.
|
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)
- Bu sahifa navigatsiya:
- NodeJS da: Child jarayonlari bilan
ruxsat bering runWithMatrixProtocol = createProtocol < MatrixProtocol > (
"MatrixWorkerScript.js" ) ruxsat bering parallel aniqlovchi = runWithMatrixProtocol ( 'determinant' ) parallelDeterminant ([[ 1 , 2 ], [ 3 , 4 ]]) . keyin ( aniqlovchi => konsol . log ( determinant ) // -2 ) Ajoyib, a? Biz mutlaqo xavfsiz boʻlmagan narsani – mavzular oʻrtasida oʻtadigan yozilmagan xabarni oldik va soʻrov-javob protokoli bilan toʻliq yozildi. Ushbu protokol yordamida ishlatishingiz mumkin bo'lgan barcha buyruqlar bir joyda ( MatrixProtocol ) yashaydi va bizning asosiy mantiqimiz ( createProtocol ) bizning aniq protokolimizdan ( runWithMatrixProtocol ) alohida yashaydi. Istalgan vaqtda ikkita jarayon o'rtasida - bitta mashinada yoki tarmoqdagi bir nechta kompyuterlar o'rtasida aloqa o'rnatishingiz kerak bo'ladimi - turdagi xavfsiz protokollar ushbu aloqani xavfsiz qilish uchun ajoyib vositadir. Ushbu bo'lim protokollar qanday muammolarni hal qilish bo'yicha ba'zi sezgilarni rivojlantirishga yordam bergan bo'lsa-da, haqiqiy ilovalar uchun Swagger, gRPC, Thrift yoki GraphQL kabi mavjud vositalarga murojaat qilishni xohlaysiz - umumiy ko'rinish uchun "Typesafe APIs" ga o'ting . ” 210-betda . NodeJS da: Child jarayonlari bilan U shbu bo'limdagi misollarni kuzatish uchun NPM dan NodeJS uchun turdagi deklaratsiyalarni o'rnatishni unutmang: npm install @types/node --save-dev Type deklaratsiyasidan foydalanish haqida ko'proq ma'lumot olish uchun Java- ga o'ting. DefinitelyTyped-da tur deklaratsiyasiga ega skript” 245-bet . NodeJS-dagi turdagi xavfsiz parallelizm brauzerdagi Web Worker ish zarrachalari uchun bo'lgani kabi ishlaydi ( 194-betdagi “Typexavfsiz protokollar” ga qarang ). Xabarlarni uzatish qatlamining o'zi xavfli bo'lsa-da, uning ustida xavfsiz API yaratish oson. NodeJS ning bola jarayoni API quyidagicha ko'rinadi: // MainThread.ts import { fork } dan 'child_process' ruxsat bering bola = sanchqi ( './ChildThread.js' ) bola . on ( 'xabar' , ma'lumotlar => konsol . info ( 'Bola jarayoni xabar yubordi' , ma'lumotlar ) ) bola . yuborish ({ turi : 'syn' , ma'lumotlar : [ 3 ]}) Biz yangi bola jarayonini yaratish uchun NodeJS-ning fork API-dan foydalanamiz. on API yordamida bola jarayonidan kiruvchi xabarlarni tinglaymiz . NodeJS bola jarayoni ota-onasiga yuborishi mumkin bo'lgan bir nechta xabarlar mavjud; Bu erda biz faqat "xabar" xabari haqida qayg'uramiz. bolalar jarayoniga xabar yuborish uchun yuborish API sidan foydalanamiz . process.on API yordamida asosiy mavzudan kelayotgan xabarlarni tinglaymiz va xabarlarni process.send orqali yuboramiz : // ChildThread.ts jarayoni . on ( 'xabar' , ma'lumotlar => konsol . info ( 'Ota-ona jarayoni xabar yubordi' , ma'lumotlar ) ) jarayoni . yuborish ({ turi : 'ack' , ma'lumotlar : [ 3 ]}) global miqyosda belgilangan jarayonda on API-dan asosiy mavzudan kiruvchi xabarlarni tinglash uchun foydalanamiz . xabarlarni ota-ona jarayoniga yuborish uchun yuborish API- dan foydalanamiz . Mexanika Web Workers-ga juda o'xshash bo'lgani uchun, men uni NodeJS-da protsesslararo aloqani abstrakt qilish uchun xavfsiz protokolni amalga oshirish uchun mashq sifatida qoldiraman. XulosaUshbu bobda biz JavaScript-ning voqealar siklining asoslari bilan boshladik va JavaScript-dagi asinxron kodning qurilish bloklari va ularni TypeScript-da qanday xavfsiz tarzda ifodalash haqida munozarani davom ettirdik: qayta qo'ng'iroqlar, va'dalar, async/await va voqea emitentlari . Keyin biz ko'p ish zarralarini ko'rib chiqdik, mavzular o'rtasida (brauzerda va serverda) xabarlarni uzatishni o'rganib chiqdik va mavzular o'rtasida muloqot qilish uchun to'liq protokollarni yaratdik. 7-bobda bo'lgani kabi , qaysi texnikadan foydalanish sizga bog'liq: Oddiy asinxron vazifalar uchun qayta qo'ng'iroqlar iloji boricha sodda. Ketma-ket va parallellashtirilishi kerak bo'lgan murakkabroq vazifalar uchun va'dalar va asinxron / kutish sizning do'stingizdir. Qachonki va'da uni to'xtatmasa (masalan, hodisani bir necha marta yoqayotgan bo'lsangiz), hodisa emitentlariga yoki RxJS kabi reaktiv oqimlar kutubxonasiga murojaat qiling. Ushbu usullarni bir nechta oqimlarga kengaytirish uchun voqea emitentlari, xavfsiz tip protokollari yoki turdagi API-lardan foydalaning (qarang: “Typesafe APIs” 210-bet ). Xulosa 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