Fable: لم يتم تنفيذ Async.StartChild / لا يوجد خطأ أو تحذير عند استخدامه

تم إنشاؤها على ٦ نوفمبر ٢٠١٧  ·  3تعليقات  ·  مصدر: fable-compiler/Fable

وصف

أهلا. أحاول بناء Async Tasks لتطبيق elmish الخاص بنا. أرغب في تنفيذ طلبين غير متزامنين بالتوازي وتطبيق ردودهما على نتائجي (النمط التطبيقي). مشكلتي هي أنني بحاجة إلى بدء تشغيل Asyncs مختلفين (أو أكثر) بالتوازي ولا يمكنني استخدام Async. بالتوازي لأن Asyncs يقوم بتغليف أنواع نتائج مختلفة. تكمن المشكلة في أن Async.StartChild لا يبدو أنه تم تنفيذه في Fable ولكني لا أحصل على أي أخطاء في التجميع أو تحذيرات في أدوات تطوير المتصفح.
لا يتم تنفيذ الطلبات غير المتزامنة مطلقًا. هل لدى أي شخص تلميح كيف أحقق ما أريد؟

رمز Repro

type Task<'Result, 'Error> =
  Async<Result<'Result, 'Error>>

let private (<!>) = Result.map
let private (<*>) = Result.apply

let map2Parallel func taskA taskB =

  async {

    let! result1Async = taskA |> Async.StartChild // start first request but do not wait
    let! result2Async = taskB |> Async.StartChild  // start second request in parallel

    let! result1 = result1Async
    let! result2 = result2Async

    let result =
      func <!> result1 <*> result2

    return result
  }

النتائج المتوقعة والفعلية

متوقع: بدء كلتا العمليتين غير المتزامنتين.
فعلي: لا شيء يحدث ولا يوجد خطأ تجميع ولا تحذير / خطأ في وحدة تحكم المتصفح

ال 3 كومينتر

حسنًا ، أنت على حق لم يتم تنفيذ Async.StartChild بعد. أعتقد أنه من الممكن القيام بذلك ، سألقي نظرة. شكرا لتوضيح ذلك! 👍

شكرا!

شكرا لك! سيتم نشر الإصلاح في الإصدار التجريبي التالي من Fable 1.3. نأمل اليوم :)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

alfonsogarciacaro picture alfonsogarciacaro  ·  3تعليقات

ncave picture ncave  ·  3تعليقات

MangelMaxime picture MangelMaxime  ·  3تعليقات

et1975 picture et1975  ·  3تعليقات

et1975 picture et1975  ·  3تعليقات