React Fetch API, Servisler videosunda neden yeni promise kullanıldı?
React ile Proje Geliştirmek -12 / Fetch API, Servisler
Başlıklı video da request function oluştururken yeni bir promise açıyor tayfun abi ve daha kontrollü olsun diyor, bunun sebebi nedir orada promise oluşturmadan da devam edebilirdi kontrollü olmaktan kastı nedir?
Kod bu;
function request(url, data = false, method = 'GET') {
return new Promise(async (resolve, reject) => {
const options = {
method
}
if (data && method === 'POST') {
options.body = JSON.stringify(data)
}
const response = await fetch(url, options)
const result = await response.json();
if (response.ok && response.status === 200) {
resolve(result)
} else {
reject(result)
}
})
}
fetch
apisi de aslında promise
dönüyor, yani muhtemelen fetch'i direk return etsekte aynı işi yapardı ancak ben kontrolü sevdiğim için resolve
ve reject
durumlarını bazı koşullara göre yönetmek ve bunu her servis istediğinde ayrıca yapmak istemediğim için tek fonksiyon içinde bu tarz bir yaklaşıma gittim, diğer türlü fetch'i direk return etsek her bir servis isteğinde then
bloğu koyup res.json()
dedikten sonra aynı kontrolleri vs. yapmak gerekecektir. toastr
vs. daha global yönetmek adına böyle bir yaklaşıma gittim.