تكرار السؤال: …
الإجابة المختصرة
توفر مخزناً محلياً للسياق يتيح مشاركة بيانات الطلب (كالـ Request ID والمستخدم) عبر كل العمليات غير المتزامنة دون تمريرها يدوياً.
الشرح
في أنظمة السيرفر المعقدة، تحتاج طبقات التسجيل والتحقق من الصلاحيات ومعاملات قواعد البيانات لمعرفة هوية الطلب الحالي. توفر فئة AsyncLocalStorage من وحدة node:async_hooks حلاً جذرياً لمشاركة هذا السياق التلقائي عبر أي دالة تنفذ ضمن نفس التدفق غير المتزامن.
مثال بالكود
import { AsyncLocalStorage } from "node:async_hooks";
const als = new AsyncLocalStorage();أخطاء شائعة
- فقدان السياق غير المتزامن عند التعامل مع مكتبات قديمة تستخدم كوداً متزامناً يقطع الـ callback chain.