in packages/utils/request-manager/src/CommonRequestManager.ts [105:177]
protected fetchDataDefault(requestArg: RequestArgsType, abortSignal?: AbortSignal): Promise<any> {
const args = requestArg as any
const url = typeof requestArg === 'string' ? args : args.url
const requestParams =
typeof requestArg === 'string' ? undefined : args.requestParams || args.params
if (!url) {
console.error('CommonRequestManager - Invalid request url param. ')
return Promise.reject()
}
return new Promise((resolve, reject) => {
fetch(url, {
...requestParams,
signal: abortSignal,
})
.then((res) => {
if (!res.ok) {
reject(res)
return
}
switch (this.config.dataType) {
case 'auto': {
const data = this.getDataFromResponse(res)
if (data) {
resolve(data)
} else {
reject(new Error('Unknown Response Content-Type'))
}
break
}
case 'arraybuffer': {
res.arrayBuffer().then(resolve).catch(reject)
break
}
case 'json': {
res.json().then(resolve).catch(reject)
break
}
case 'text': {
res.text().then(resolve).catch(reject)
break
}
default: {
resolve(res)
}
}
})
.catch(reject)
})
// requestParams = requestParams || {}
// return new Promise((resolve, reject) => {
// const xhr = new XMLHttpRequest()
// xhr.responseType = this.config.dataType
// const listener = (e) => {
// const status = xhr.status
// if (status === 200) {
// resolve(xhr.response)
// } else if (status === 400) {
// reject(new Error('Request failed because the status is 404'))
// } else {
// reject(new Error('Request failed because the status is not 200'))
// }
// }
// xhr.addEventListener('loadend', listener)
// xhr.addEventListener('error', (e) => {
// reject(new Error('Request failed'))
// })
// xhr.open(requestParams.method || 'GET', url)
// xhr.send()
// })
}