Hangi Promise türlerini biliyorsun?
sobes.tech yapay zeka
AI'dan gelen yanıt
Node.js'te temel promise türleri:
-
Basic Promise: Gelecekteki değerler veya hatalar için bir kapsayıcıdır. Üç durumu vardır:
pending(beklemede),fulfilled(başarılı),rejected(reddedildi).new Promise()yapıcısı kullanılarak oluşturulur.// Temel bir promise oluşturma const myPromise = new Promise((resolve, reject) => { // Asenkron işlem setTimeout(() => { const success = true; if (success) { resolve("İşlem başarıyla tamamlandı"); } else { reject("Bir hata oluştu"); } }, 1000); }); -
Promise.resolve(): Hemen
fulfilleddurumuna geçen ve belirli bir değer alan bir promise oluşturur.// Çözülmüş bir promise oluşturma const resolvedPromise = Promise.resolve("Bu zaten çözümlenmiş bir promise"); -
Promise.reject(): Hemen
rejecteddurumuna geçen ve bir hata nedeni alan bir promise oluşturur.// Reddedilmiş bir promise oluşturma const rejectedPromise = Promise.reject(new Error("Bu reddedilmiş bir promise")); -
Promise.all(): Bir dizi promise alır ve yeni bir promise döner. Tüm promise'lar başarıyla tamamlandığında
fulfilleddurumuna geçer. Değeri, girişteki promise'ların aynı sırasına göre sonuçların dizisidir. Herhangi biri reddedilirse,Promise.all()ilk reddedilen promise nedeni ile hemen reddedilir.// Promise.all() kullanımı const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); const promise3 = new Promise((resolve, reject) => setTimeout(() => resolve(3), 100)); Promise.all([promise1, promise2, promise3]) .then((values) => { // values [1, 2, 3] }) .catch((error) => { // Hata işleme }); -
Promise.allSettled(): Bir dizi promise alır ve yeni bir promise döner. Tüm promise'lar tamamlandığında
fulfilledveyarejecteddurumuna geçer. Değeri, her promise'ın sonucu hakkında durumu ve değeri/nedenini açıklayan nesnelerin dizisidir.Promise.all()'dan farklı olarak hemen reddedilmez.// Promise.allSettled() kullanımı const promiseA = Promise.resolve("başarı"); const promiseB = Promise.reject("hata"); Promise.allSettled([promiseA, promiseB]) .then((results) => { // results, nesnelerin dizisi olacaktır: // [{status: 'fulfilled', value: 'başarı'}, {status: 'rejected', reason: 'hata'}] }); -
Promise.race(): Bir dizi promise alır ve yeni bir promise döner. İlk tamamlanan promise'ın sonucu/nedenine göre
fulfilledveyarejecteddurumuna geçer.// Promise.race() kullanımı const promiseFast = new Promise((resolve, reject) => setTimeout(() => resolve("Ben hızlıyım!"), 50)); const promiseSlow = new Promise((resolve, reject) => setTimeout(() => resolve("Ben yavaşım..."), 500)); Promise.race([promiseFast, promiseSlow]) .then((value) => { // value "Ben hızlıyım!" olacak }); -
Promise.any(): Bir dizi promise alır ve yeni bir promise döner. Başarıyla tamamlanan ilk promise'in değeri ile
fulfilleddurumuna geçer. Tüm promise'lar reddedilirse,Promise.any()birAggregateErrorhatası döner, bu hata tüm reddedilen promise'ların nedenlerini içerir. Node.js 12 ve sonrası için kullanılabilir.// Promise.any() kullanımı const promiseFail1 = Promise.reject("Hata 1"); const promiseSuccess = Promise.resolve("Başarı!"); const promiseFail2 = Promise.reject("Hata 2"); Promise.any([promiseFail1, promiseSuccess, promiseFail2]) .then((value) => { // value "Başarı!" olacak }) .catch((error) => { // Tüm promise'lar reddedilirse, AggregateError işlenir });