Fable: Async.StartChildが実装されていない/使用時にエラーまたは警告がない

作成日 2017年11月06日  ·  3コメント  ·  ソース: fable-compiler/Fable

説明

やあ。 elmishアプリケーション用の非同期タスクを作成しようとしています。 2つの非同期リクエストを並行して実行し、それらの応答を結果に適用したいと思います(適用スタイル)。 私の問題は、2つ(またはそれ以上)の異なる非同期を並行して開始する必要があり、非同期が異なる結果タイプをラップしているため、Async.Parallelを使用できないことです。 問題は、Async.StartChildがFableに実装されていないようですが、ブラウザー開発ツールでコンパイルエラーや警告が表示されないことです。
非同期リクエストは実行されません。 誰かが私が望むことを達成する方法のヒントを持っていますか?

再現コード

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はまだ実装されていません。 私はそれが可能であるはずだと思います、私は見ていきます。 ご指摘いただきありがとうございます! 👍

ありがとう!

おかげさまで! この修正は、次のFable1.3ベータバージョンで公開されます。 うまくいけば今日:)

このページは役に立ちましたか?
0 / 5 - 0 評価