私の一般的な質問は、リソースがJavascriptでクリーンアップ/リリースされるようにするためにどのようなテクニックを使用できますか?現在、関数内の戻りまたは例外への実行パスをすべて見つけ、クリーンアップを確実にするC(gotoなし)アプローチを採用しています。Javascriptは自動的にリソースを解放します(RAIIなど)
私の具体的な例は次のとおりです。Node.jsでは、オブジェクトメンバー関数でmutexesを使用しています(私は相互排除が必要です。Node.jsアプリケーションの複数のインスタンスを実行し、異なるインスタンスがファイルシステムとやりとりします)。
例えば、C++で、私は、次のような何かをするだろう:
void MyClass::dangerous(void) {
MyLock lock(&this->mutex);
...
// at the end of this function, lock will be destructed and release this->mutex.
}
を私の知る限り、JavaScriptはどのRAII機能を提供しません。 C言語では、エラーが発生した場合に私のリソース割り振りを解き放つために、関数からのリターンパスが1つしかないので、goto
を使用します。
Javascriptで同様の効果を得るにはどのような方法がありますか?