protected fetchDataDefault()

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()
		// })
	}