2021年6月15日火曜日

ブラウザからwebSocket経由でdeno.readTextFileを実行

先日作成したものと見かけは同じですが、中身が少し違います。
sendで渡したオブジェクトが持つプロパティによって異なる機能を呼び出せる仕組み(ただし今回はreadTextFileのみ)になっています。



できれば、もう少し違う仕組みにしたかった(後述)ですが、とりあえず動作する物を作る方が先決と考えて、無難な方法で実装しました。






動作確認ok



気になっているのは「Promise/async/await」で折角コールバック地獄から抜け出せたのに、onmessageイベントの戻り値の受け取り方がコールバックじゃ駄目じゃない?という所。

できればブラウザ側で「const txt = await Deno.readTextFile(path)」みたいな書き方をしたいです。
そのためにはonmessageのリスナーをどうにかしなきゃいけないと考えましたが、webSocketの接続数が1だと各機能からの呼び出しに対する応答の順番が保証されないので無理な気がします。
接続数を各機能の数に合わせて増やせばOKなのかもしれませんが…。

0 件のコメント:

コメントを投稿