Say I have a bunch of promises in my application that are just like this:
const fetchUser = id => new Promise((resolve, reject) => {
const request = new XMLHttpRequest()
request.open('GET', 'blabla')
request.onload = () => {
if (request.status >= 400 && request.status <= 500) {
reject(Error(JSON.parse(request.responseText)))
} else {
resolve(JSON.parse(request.responseText))
}
}
request.onerror = () => reject(Error('There was a problem when fetching a user'))
request.send()
})
That's bad practice since I am just copy and pasting the request.onload
and request.onerror
portion for every Promise I make. So I could do something like this:
request.onload = handleLoadedRequest
request.onerror = handleBadRequest
and create these two new functions. However, how would I resolve
and reject
inside these functions?
const handleBadRequest = () => reject(Error('Oops!'))