https://qiita.com/k-kagurazaka@github/items/8595ca60a5c8d31bbe37
非同期処理、RxJava、Coroutineそれぞれ違うので。 promiseパターンも押さえておこう。
中断可能な計算インスタンス
launchかasyncのビルダーを使う。
launch
launch の引数のラムダは suspend 修飾子付きの中断ラムダ(suspending lambda)なので、中で中断関数を呼び出すことができます。戻り値は Job インターフェースで、coroutineの実行をキャンセルしたり、完了まで中断したりできます。
async
launch と異なり値を返すことができるcoroutineを生成します。戻り値の型は Deferred
で、中断関数である await を呼び出すとそのcoroutineの結果を受け取ることができます。
それに、CoroutineContextである、UIかCommonPoolを渡して実行。
残
Jobインターフェイスで返ってくる? cancel()?