問題タブ [zio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - ZStream は並列操作を無視し、代わりに順次実行します
次のコードは、次putStrLn
の理由により、効果を並行して実行することになっていmapMPar
ます。
しかし実際には、何があっても常にfoo
前に処理されます。bar
私は何かを見逃しましたか、それともバグですか?
scala - ZIO エラー チャネルとは何ですか? また、何を入れるかについての感覚を得るにはどうすればよいですか?
ZIO
( https://zio.dev/ ) は、コアにデータ構造を持つ scala フレームワークでありZIO[R, E, A]
、そのサイトは 3 つのパラメーターについて次の情報を提供します。
ジオ
データ型には、次の
ZIO[R, E, A]
3 つの型パラメーターがあります。
R
- 環境タイプ。この効果には type の環境が必要R
です。この型パラメーターがAny
の場合、効果は任意の値 (単位値など) で実行できるため、効果に要件がないことを意味します()
。E
- 障害の種類。効果は type の値で失敗する場合がありますE
。を使用するアプリケーションもありますThrowable
。この型パラメーターがNothing
の場合、Nothing 型の値がないため、効果が失敗しないことを意味します。A
- 成功タイプ。効果は type の値で成功する場合がありますA
。この型パラメーターがUnit
の場合、効果は有用な情報を生成しないことを意味し、 の場合Nothing
、効果が永久に (または失敗するまで) 実行されることを意味します。
何が何であるかを理解するのは簡単A
です。これは、名目上のケースで関数によって返される値です。つまり、関数をコーディングした理由です。
R
は一種の依存性注入です - 興味深いトピックですが、ZIO
常に設定することで無視して使用できますAny
(実際にIO[E, A] = ZIO[Any, E, A]
は lib にエイリアスがあります)。
したがって、それE
はエラー用のタイプのままです (有名なエラー チャネル)。私は大まかにそれIO[E, A]
が一種だと思いますEither[E, A]
が、効果を扱います(これは素晴らしいです)。
私の質問は次のとおりです。アプリケーションでどこでもエラー チャネルを使用する必要があるのはなぜですか?また、エラー チャネルに何を入れるかをどのように決定すればよいでしょうか?