-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Ydi edited this page Oct 6, 2024
·
11 revisions
このアドオンは以下の 4 つのクラスを公開します。
-
Async
非同期的な処理を抽象化するクラス。await を使いやすくする、このアドオンの中心となるクラスです。 -
Cancel
Async に中止を指示するためのクラス。 -
AsyncIterator
複数の途中結果を生成可能な Async。1.0.2 で削除 -
AsyncGenerator
複数の制御可能な途中結果を生成可能な Async。1.0.2 で削除
その他の Nesinkrona で始まるクラスはアドオン外から使用することの無い、内部実装です。
制約上妥協していた箇所の設計を変え、さらに結果を持てるようになりました。
-
Task を Async に変更
-
TaskUnit を Async に変更
-
Task.when_all() を Async.all() に変更
-
Task.when_any() を Async.any() に変更
-
CancellationTokenSource と CancellationToken を Cancel に変更 (1 つにまとめた)
-
Task.from_signal() を Async.from_signal_name() に変更
- Async.all_settled() を追加 (Async.all() はすべての完了を待つが、Async.all_settled() は完了を問わず処理を終えたことを待つ)
- Async.race() を追加 (Async.any() はどれか 1 つの完了を待つが、Async.race() は完了を問わず処理を終えたことを待つ)
- インライン関数 (ラムダ式、正式な名前不明) から生成メソッドを追加
- Async.from()
- Async.from_callback()
- また、継続メソッドを追加
- async.then()
- async.then_callback()
- Signal オブジェクトに対応した生成メソッドを追加
- Async.from_signal()
- キャンセルのタイミングを ?sync.*_callback() メソッドを除き async.wait() に集約した
- ネストされた Async をアンラップするメソッドを追加
- async.unwrap()
AsyncIterator を追加AsyncGenerator を追加
JS の Promise や Iterator, Generator に近くなってます。