問題タブ [kotlinx.coroutines]

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.

0 投票する
1 に答える
768 参照

kotlin - ファンアウト / ファンイン - 結果チャンネルを閉じる

私はアイテムを生成し、複数のコルーチンから消費し、resultChannel にプッシュします。プロデューサーは、最後のアイテムの後にチャネルを閉じています。

resultChannel が閉じられないため、コードは決して終了しません。反復を検出して適切に終了する方法hasNext()false?

0 投票する
1 に答える
437 参照

java - Spring 5 および Kotlin 1.1 コルーチン: タイプ rx.Scheduler が存在しない

Spring-context 5.0.0.RELEASE で Kotlin 1.1.4-3 を使用しています。

プロジェクトを開始すると、次のエラーが発生します。

春はクラスを探しているようですrx.Schedulerが、クラスパスにはありません。の対応する依存関係がrx.Scheduler追加されていないことは明らかです。しかし、インターネット上で関連するものを見つけることができませんでした。

RxJava2( io.reactivex.rxjava2) をプロジェクトに追加しましたが、うまくいきませんでした。私に何ができる?

最終的な回答 - Rafal G. の回答に基づく:

このエラーは、konrad-kaminski/spring-kotlin-coroutineライブラリを使用しているためです。ただし、プロジェクトでこれらの依存関係を使用しました。

0 投票する
2 に答える
812 参照

android - 単体テストのサポートにより、Kotlin でのコルーチンの使用をクリーンアップ

しばらくの間、私たちは Kotlin を使用しており、現在注力していることの 1 つは、コルーチンを使用して、非同期で実行したい操作を処理することです。

使用例は明確で機能しますが、これをアーキテクチャ内にきれいな方法で統合するにはいくつかの問題があります。ドメインに焦点を当てたクラスのメソッドの実装を見ると、読みやすく、非同期機能からの「ノイズ」ができるだけ少なくなるという考えがあります。実際に使用しないと、非同期を使用できないことはわかっています。だから、このようなものを書くことは私が望むものです:

しかし、これは私が防ぎたいことです:

つまり、これらのドメインに焦点を当てたクラスの実用的な単体テストと組み合わせたいのですが、実際には機能しません。例を見てみましょう:

それは機能します (スクリーンショット: https://imgur.com/a/xG9Xw )。では、テストを見てみましょう。

現在、このテストは理想的とは言えませんが、lateinit var データが初期化されていないため、意図したとおりに機能することを確認できるところまで到達することはありません。最終的には、ドメイン クラスの美学と可読性は、私がどこまで行きたいかということです。私は満足している実用的な作業例をいくつか用意しています。しかし、私のテストを機能させるのは難しいようです。

現在、この種のものについてオンラインでいくつかの異なる記事がありますが、実際には何もうまくいきませんでした. これ ( https://medium.com/@tonyowen/android-kotlin-coroutines-unit-test-16e984ba35b4 ) は興味深いようですが、プレゼンターのコンテキストを起動する呼び出しクラスのアイデアは好きではありません。 turn には、非同期処理を行う依存関係があります。抽象的な考えとしては、「プレゼンター、あなたが何をしても、UI コンテキストについて私に報告してください」というアイデアが好きですが、それはむしろ物事を機能させるための修正として感じられ、異なるオブジェクト間での非同期機能に対する共通の懸念につながります.

とにかく、私の質問: 短い例から離れて、単体テストを使用して、より大きなアーキテクチャ内にコルーチンを統合する方法について何か指針を持っている人はいますか? また、「物事を機能させたい場合は、犠牲を払わなければならない」とは異なるレベルで説得力があるため、物事の見方を変えさせる議論にも非常にオープンです。この質問は、例を機能させるだけではありません。これは孤立した例にすぎないため、大きなプロジェクト内での真の堅実な統合を探しています。

ご入力をお待ちしております。前もって感謝します。