@akuma225/promise-executor
v1.0.3
Published
Bibliothèque TypeScript pour l'exécution parallèle de promesses avec gestion de clés
Maintainers
Readme
@akuma225/promise-executor
Une bibliothèque TypeScript pour exécuter plusieurs promesses en parallèle avec des clés associées.
Installation
npm install @akuma225/promise-executorCaractéristiques
- Exécution parallèle de promesses
- Association de clés aux promesses pour identifier facilement les résultats
- Gestion automatique du nettoyage après exécution
- API simple et intuitive
- Écrit en TypeScript avec types complets
Utilisation
import { AkumaPromiseExecutor } from '@akuma225/promise-executor';
// Créer une instance
const executor = new AkumaPromiseExecutor();
// Ajouter des promesses avec des clés
executor.add('utilisateurs', api.getUsers());
executor.add('produits', api.getProducts());
executor.add('commandes', api.getOrders());
// Exécuter toutes les promesses en parallèle
const results = await executor.execute();
// Accéder aux résultats par clé
console.log(results.utilisateurs); // Résultats de getUsers()
console.log(results.produits); // Résultats de getProducts()
console.log(results.commandes); // Résultats de getOrders()API
AkumaPromiseExecutor
add(key: string, promise: Promise<any>): void
Ajoute une promesse à exécuter avec une clé associée.
key: La clé unique pour identifier le résultat de la promessepromise: La promesse à exécuter
execute(): Promise<{ [key: string]: any }>
Exécute toutes les promesses en parallèle et retourne les résultats dans un objet avec les clés correspondantes.
hasPendingPromises(): boolean
Vérifie s'il y a des promesses en attente d'exécution.
clear(): void
Efface toutes les promesses en attente.
Exemple avancé
const executor = new AkumaPromiseExecutor();
// Ajouter plusieurs promesses
executor.add('données1', fetchData1());
executor.add('données2', fetchData2());
try {
// Exécuter les promesses
const results = await executor.execute();
// Utiliser les résultats
processResults(results.données1, results.données2);
} catch (error) {
// Gérer les erreurs
console.error('Une erreur est survenue:', error);
} finally {
// Vérifier s'il reste des promesses
if (executor.hasPendingPromises()) {
executor.clear();
}
}Contribution
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou à soumettre une pull request.
Licence
MIT
