async/await
非同期処理 を手続き的に行うための構文
JavaScript / TypeScript
ECMAScript 2017 で導入
Promise の糖衣構文みたいなもの
await promise するとPromiseが解決するまで待つ
メソッド呼ぶときに括弧がいるのでダサい
code:promise.js
const result = await promise;
...
// 同じ
promise.then(result => {
...
});
エラーはtry-catchを使う
式指向に反する
async関数であってもawaitしない限りは同期的に実行される
https://scrapbox.io/files/615b382c66391e00236360b0.png
Rust
非同期処理ランタイムとかいうものを前提とするのがポイント
tokio とか
value.await という構文
メソッドチェーンとの相性が非常に良い
エラーが起きる際はOptionかResultで返る
式指向に反しない!!有能!!
失敗しない非同期が作れる!!有能!!
Haskell
そんなものはない
モナドが全部やってくれるので...
F#
コンピューテーション式で実現しているらしい