Contexte :
Le problème en question implique une fuite de ressources potentielle dans le code responsable pour récupérer des utilisateurs d'une base de données. La nature asynchrone du code rend difficile la libération rapide de la connexion à la base de données.
Définition du modèle Promise Disposer :
Le modèle Promesse Disposer est une technique utilisée pour associer une ressource avec une portée de code spécifique. Cette technique garantit que la ressource est libérée dès la fin de l'exécution du code, évitant ainsi les fuites de ressources.
Application du modèle au code :
Dans l'extrait de code fourni, le getDb () établit une connexion à la base de données. Pour résoudre le problème de fuite de ressources, le code peut être refactorisé à l'aide du modèle broyeur :
function withDb(work) { var _db; return myDbDriver.getConnection().then(function(db) { _db = db; // Keep reference to release return work(db); // Perform work on the database }).finally(function() { if (_db) _db.release(); }); }
À l'aide du modèle broyeur, le code peut être modifié comme suit :
withDb(function(conn) { return conn.query("SELECT name FROM users"); }).then(function(users) { // Database connection released here });
Avantages du modèle Disposer :
En utilisant le modèle Promesse Disposer :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!