"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تنفيذ Golang's chan في TypeScript باستخدام @harnyk/chan

تنفيذ Golang's chan في TypeScript باستخدام @harnyk/chan

تم النشر بتاريخ 2024-08-06
تصفح:298

Implementing Golang

مقدمة

يمكن أن تكون البرمجة غير المتزامنة في TypeScript صعبة، خاصة عند التعامل مع التزامن. مستوحاة من تشان Golang، قمت بإنشاء مكتبة، @harnyk/chan، لتوفير وظائف مماثلة لـ TypeScript، مما يتيح التزامن الفعال والقابل للإدارة.

ما هو @harnyk/تشان؟

@harnyk/chan هي مكتبة TypeScript تحاكي آلية قناة Golang. فهو يسمح بالاتصال الآمن والمتزامن بين المهام غير المتزامنة، على غرار Go's chan.

سمات

  1. عمليات القناة الأساسية:

    • إرسال واستقبال: يمكن استخدام القنوات في @harnyk/chan لإرسال واستقبال القيم بين الوظائف غير المتزامنة.
    • القنوات المخزنة: دعم القنوات المخزنة للتعامل مع قيم متعددة.
  2. التكرار غير المتزامن:

    • يمكن تكرار القنوات بشكل غير متزامن باستخدام for-wait-of، مما يجعل من السهل معالجة القيم عند استلامها.
  3. اختر العبارة:

    • يسمح لك بيان التحديد بالانتظار حتى عمليات قناة متعددة، واختيار العملية التي تكون جاهزة أولاً، على غرار تحديد Go.

مثال الاستخدام

إليك مثال بسيط يوضح كيفية استخدام @harnyk/chan:

import { chan, select } from '@harnyk/chan';

const ch = chan();

// Producer
(async () => {
  for (let i = 0; i  {
  for await (const value of ch) {
    console.log(value);
  }
})();

لماذا تستخدم @harnyk/chan؟

  • تحسين إدارة التزامن: إدارة المهام والاتصالات المتزامنة بسهولة.
  • إمكانية القراءة المحسنة: بناء جملة واضح وموجز مستوحى من Go's chan.
  • أنماط غير متزامنة قوية: الاستفادة من قوة القنوات لإنشاء مسارات عمل غير متزامنة أكثر تعقيدًا وموثوقية.

خاتمة

@harnyk/chan يجلب قوة Golang's chan إلى TypeScript، مما يجعل البرمجة غير المتزامنة أكثر قابلية للإدارة وكفاءة. سواء كنت تتعامل مع مسارات عمل معقدة غير متزامنة أو تحتاج فقط إلى طريقة أفضل للتعامل مع التزامن، يمكن أن يكون @harnyk/chan أداة قيمة في مجموعة أدوات TypeScript الخاصة بك.

روابط

  • مستودع جيثب
  • مزيد من الأمثلة

قم بمراجعة مستودع GitHub لمزيد من الأمثلة والوثائق. للتعمق أكثر، اقرأ منشور المدونة الأصلي. برمجة سعيدة!

بيان الافراج تم نشر هذه المقالة على: https://dev.to/panic_err/implementing-golangs-chan-in-typescript-with-harnykchan-187h?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3