2023-01-26
Promiseによってコールバック地獄から開放されたJavaScriptですが、同期的に動かすためにawaitを付けるのが面倒です。うっかり付け忘れバグを経験した人も多いのではないでしょうか?

awaitをデフォルトにして、非同期的に扱う時にキーワードを付けたいと思いますが、従来のJavaScriptとの互換性的に難しいです。そこで新言語、JavaScriptをちょっとだけ変更したJavaScriptをAltJS、SyncJS(シンクジェーエス)を作りました!(AltJS、オルトジェーエス、JavaScriptを生成するプログラミング言語、TypeScriptが有名)


「SyncJS」

SyncJS is a default await AltJS, basically SyncJS is JavaScript.
SyncJSは、awaitがdefalutなAltJS、基本的にはJavaScriptです。
You can use "promise" function to to use Promise for async execution.
非同期的に呼びたいときはpromise関数で囲ってください。Promiseのインスタンスが返ります。


詳しくは、51行のJavaScriptプログラム「syncjs.js」と、deno test でチェックする。テストコード「syncjs.test.js」をご覧ください。

JavaScriptのパーサーには、esprimaではなく、top level awaitにも対応していて互換性もある、acornをESモジュール化した、acorn-esを使いました。JavaScriptの生成はescodegenです。

おもしろそう!もっと知りたい!という学生へ
jig.jp 勉強会&インターン」募集中です。

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS