私の一般的な質問は、リソースが Javascript で確実にクリーンアップ/リリースされるようにするためにどのような手法を使用できるかということです。現在、関数内のリターンまたは例外へのすべての実行パスを検索し、確実にクリーンアップするという C (goto なし) アプローチを採用しています。
私の具体的な例は次のとおりです。Node.jsでは、オブジェクトメンバー関数で(ファイルロックを介して)ミューテックスを使用しています(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 ではgoto
、エラーが発生した場合に s を使用してリソースの割り当てを巻き戻し、関数からのリターン パスが 1 つだけになるようにします。
Javascriptで同様の効果を達成するためのテクニックは何ですか?