# javascript 中模仿 python 的 with 自動關閉功能
python 中有一個 with 關鍵字, 可以實現離開 scope 時自動關檔或執行某些清理操作的功能。 js 中可以用 generator 實作出類似的功能,只是會很不直覺。 也可以用 callback 實作,但要額外處理 async 的問題。 ecmascript 委員會也有收到一個取材自 c# 語言的 using 的提案, 雖然說 js 已經有類似的 finalizer 功能, 但是依靠垃圾回收觸發,js 的垃圾回收器又不是離開 scope 會必定觸發的。
https://gholk.github.io/javascript-using-auto-close.html
本文回復將顯示於原文留言處
偷偷說,其實趕這篇文是想試試看剛寫好的 mastodon 留言板效果如何
@whitglint 查了下的確和 c# 很像,已修正
@gholk
咦,我的回覆怎麼會出現在文章底下的留言
@whitglint 以後加個警告好了,回復本嘟會出現在原文下方留言處
@gholk
直覺會有一些問題
1. 發生例外
2. 不小心 break
3. async 相關
@whitglint 看規格怎麼處理囉。 async 中可能會出現 await 一去不復返的,不過那就是 async 沒寫好,而且就算沒有 using ,後面的 code 也是 unreachable 。