Yayınlanma tarihi: 17 Ocak 2025
Web'de eşzamansız çalışma yapmak zor olabilir. Web'de yapılan işlemlerin çoğu eşzamansızdır. Bu işlem fetch
çağrıları veya diğer eşzamansız işlemleri içersin, yerleşik yöntemler güçlü hata işleme sağladığında tarayıcılar bu işlemi yapma şeklinizi kolaylaştırır. Bu, then
, catch
ve finally
yöntemlerini kullanan Promise'ler için zaten sağlanmıştır.
Yine de uygulamanızın kod tabanını tasarlama şekliniz esnek olmalıdır ve uygulamanızda yapacağınız her şey mutlaka eşzamansız değildir. Bazen, Promise
işlevine ilettiğiniz geri çağırma işlevinin senkronize olup olmadığı önemli değilse geri çağırma sonucunu daha basit bir şekilde işlemek isteyebilirsiniz. Promise.try
, artık tüm büyük tarayıcı motorlarında kullanılabilen ve geliştiriciler için bu işlemi basitleştiren bir yöntemdir. Bu, Promise.try
'ün artık Temel Yeni olarak kullanılabileceği anlamına gelir.
Promise.try
nedir ve nasıl çalışır?
Promise.try
, senkron geri çağırma işlevleri için hata yönetimini Promise.resolve
'ü kullandığınızdan daha kolay hale getiren bir kolaylık yöntemidir:
// If the callback is synchronous and it throws
// an exception, the error won't be caught here:
new Promise(resolve => resolve(callback());
// But it will be here:
Promise.try(callback);
Ardından then
, catch
ve finally
yöntemlerini kullanarak Promise
'ın çözümünü veya reddedilmesini yönetin:
Promise.try(callback)
.then(result => console.log(result))
.catch(error => console.log(error))
.finally(() => console.log("All settled."));
Geri çağırma işlevinizde bağımsız değişkenler varsa ne olur? Bunu iki şekilde yapabilirsiniz:
// This creates an extra closure, but works:
Promise.try(() => callback(param1, param2));
// This doesn't create an extra closure, and still works:
Promise.try(callback, param1, param2);
Promise.try
kullanmanın birincil avantajı, kendisine ilettiğiniz geri çağırma işlevinin eşzamanlı veya eşzamansız olup olmadığına bakılmaksızın Promise'leri tekdüze kullanmanıza olanak tanımasıdır. Bu, kodunuzda yaygın olarak kullanılan bir Promise
işlevine geri çağırma işlevleri aktaran bir yardımcı program işlevi söz konusu olduğunda, Promise.try
'ü kullanmak, kendisine aktardığınız tüm geri çağırma işlevleri için uygun hata işleme özelliğini sağladığı anlamına gelir. Daha fazla bilgi ve diğer olası endişeler veya kullanım alanları için Promise.try
ile ilgili MDN belgelerine bakın.
Sonuç
Promise.try
, yeni kullanıma sunulan temel düzeye ulaştığında tüm büyük tarayıcı motorlarında kullanabilirsiniz. Zaman geçtikçe, web platformunun kararlı ve birlikte çalışabilir bir parçası olacağına dair güveniniz artarak Promise.try
'ü web uygulamalarınızda kullanabileceksiniz.