context
Bir listr2
görev listesi çalıştırırken, çalışmakta olan görevler arasında paylaşılan bir değişken olan ctx
mevcut. Bu, diğer programlama dillerindeki paylaşılan bağlamlarla aynı temel fikre sahiptir.
Bağlam Değişkeni
Bağlam, görev listesi boyunca paylaşılan bir nesnedir. Dış değişkenler aynı işlemi gerçekleştirmek için kullanılabilse de, bağlam, iç görevleri işlemek için kendine yeterli bir yol sağlar.
Bağlam, varsayılan olarak
any
türünde olanListrContext
türünü karşılayan herhangi bir şey olabilir; ancak, görev boyunca değiştirilebilir bir yapı olarak kullanılma niyeti nedeniyle bir nesne olması önerilir.
— Listr Belgelendirmesi
Bağlam türü, görev boyunca hangi türün kullanıldığını sınırlamak ve tür güvenliğini sağlamak için Listr sınıfına bir tür parametresi olarak eklenebilir.
- Başarılı bir görev, daha ileri işlemler için bağlamı döndürür.
- Bağlam, görev listesini oluştururken veya görev listesini çalıştırırken dışarıdan eklenebilir.
- Bir hata ile karşılaşıldığında, o andaki bağlam, sorunu daha iyi anlamayı sağlamak için dondurulmuş bir nesne olarak kaydedilir.
::: info İpucu
Tüm görevler aynı görev listesinde bulunuyorsa, bağlam otomatik olarak tüm alt görevlere eklenir.
:::
Bağlam Ekleme
Bağlamı Seçenek Olarak Eklemek
Bağlam, Listr için bir seçenek olarak eklenebilir.
Bu, alt görevlere farklı bir bağlam eklemek için de kullanılabilir. Örneğin, yalnızca alt görev bağlamında kullanmak istediğiniz bir dizi değişkeniniz olduğunu varsayalım; o zaman bunu seçenek aracılığıyla geçirebilirsiniz. Bu değişken, alt görevler tamamlandığında otomatik olarak bellekten silinecektir. Dolayısıyla, bazı değerleri sonsuza kadar kaybolmadan önce döndürmek istiyorsanız, bunları ana bağlama atayabilirsiniz çünkü erişilebilir.
::: details Kod Örneği
<<< @../../examples/docs/listr/context/multiple-contexts.ts
:::
Çalışma Zamanında Bağlam Ekleme
<<< @../../examples/docs/listr/context/at-runtime.ts{8}
Bağlamı Alma
Görev Dönüş Değeri Olarak
Başarılı bir görev, her zaman görevin sonunda bağlamı döndürür.
<<< @../../examples/docs/listr/context/retrieve-return.ts{11,13}
Görev Listesinin Özelliği Olarak
Kök Listr sınıfı kendisi, bağlam değerini kamuya açık bir özellik olarak tutar.
<<< @../../examples/docs/listr/context/retrieve-property.ts{6,13}