Asinxron provayderlar
Ba'zan ilova ishga tushishi bir yoki bir nechta asinxron vazifalar bajarilmaguncha kechiktirilishi kerak bo'ladi. Masalan, ma'lumotlar bazasi bilan ulanish o'rnatilmaguncha so'rovl
Ba'zan ilova ishga tushishi bir yoki bir nechta asinxron vazifalar bajarilmaguncha kechiktirilishi kerak bo'ladi. Masalan, ma'lumotlar bazasi bilan ulanish o'rnatilmaguncha so'rovlarni qabul qilishni boshlashni xohlamasligingiz mumkin. Buni asinxron provayderlar yordamida amalga oshirishingiz mumkin.
Buning sintaksisi useFactory sintaksisi bilan async/await dan foydalanishdir. Factory Promise qaytaradi va factory funksiyasi asinxron vazifalarni await qilishi mumkin. Nest bunday provayderga bog'liq (uni in'eksiya qiladigan) har qanday sinfni instansiyalashdan oldin promise'ning yechilishini kutadi.
1{
2 provide: 'ASYNC_CONNECTION',
3 useFactory: async () => {
4 const connection = await createConnection(options);
5 return connection;
6 },
7}Maxsus provayder sintaksisi haqida batafsil bu yerda.
In'eksiya
Asinxron provayderlar boshqa komponentlarga, boshqa har qanday provayder kabi, o'z tokenlari orqali in'eksiya qilinadi. Yuqoridagi misolda siz @Inject('ASYNC_CONNECTION') konstruktsiyasidan foydalanasiz.
Misol
The TypeORM recipe asinxron provayderning yanada to'liqroq misoliga ega.