Futures في سكالا هي طريقة مضمنة لتنفيذ عمليات مؤجلة (asynchronous operations) وإدارة النتائج المستقبلية (future results). تعمل الفئات Future وPromise معًا لتحقيق هذا الهدف.
عندما تقوم بإرجاع Future من دالة (function) في سكالا، يشير ذلك إلى أن العملية المرتبطة بهذا المستقبل قيد التنفيذ وأن النتيجة لم تعود متاحة بعد. يمكنك المتابعة لاحقًا والحصول على النتيجة المستقبلية بناءً على ذلك.
من المهم معرفة أن الأكواد الذي يتم تنفيذها من خلال Future لا تعود بشكل تلقائي. عدم الانتظار للحصول على العملية المناسبة من خلال الـ Future يتيح لتطبيقك استكمال أي عملية أخرى خلال هذا الوقت، مما يقلل من وقت الانتظار.
يتم استخدام Futures في سكالا بشكل شائع في تدفق المعالجة (processing pipeline)، حيث يتم تنفيذ مهام مختلفة من خلال Futures، وتستخدم Promises للالتقاء بين هذه المهام.
يجب الانتباه إلى أن الأكواد التي تم تنفيذها في Future يجب ألا تتبع النمط التمامي (blocking pattern) والذي يقوم على تعليق (blocking) التنفيذ، وإلا سيؤدي ذلك إلى تعطيل بقية تطبيقك.
لنظام Scala، التعامل مع Futures وPromises يسهل ويسرع العمليات الزمنية ويوفر مرونة تستهلك الكثير من الوقت في مكان آخر.