NestJS Logo

Fournisseurs asynchrones

Parfois, le démarrage de l'application doit être retardé jusqu'à ce qu'une ou plusieurs tâches asynchrones soient terminées. Par exemple, il se peut que vous ne souhaitiez pas commencer à accepter des requêtes tant que la connexion avec la base de données n'a pas été établie. Vous pouvez y parvenir en utilisant des fournisseurs asynchrones.

La syntaxe pour cela est d'utiliser async/await avec la syntaxe useFactory. La factory renvoie une Promise, et la fonction factory peut await les tâches asynchrones. Nest attendra la résolution de la promesse avant d'instancier toute classe qui dépend d'un tel fournisseur (qui l'injecte).


{
  provide: 'ASYNC_CONNECTION',
  useFactory: async () => {
    const connection = await createConnection(options);
    return connection;
  },
}
Astuce Apprenez-en plus sur la syntaxe des fournisseurs personnalisés ici.

Injection#

Les fournisseurs asynchrones sont injectés dans d'autres composants par leurs jetons, comme n'importe quel autre fournisseur. Dans l'exemple ci-dessus, vous utiliseriez la construction @Inject('ASYNC_CONNECTION').

Exemple#

The TypeORM recipe présente un exemple plus substantiel de fournisseur asynchrone.

Soutenez-nous

Nest est un projet open source sous licence MIT. Il peut se développer grâce au soutien de ces personnes formidables. Si vous souhaitez les rejoindre, apprenez-en plus ici.

Sponsors Principaux

Trilon LogoMarblism LogoMojam LogoAmplication Logo

Sponsors / Partenaires

Devenir un sponsor