请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

return xhr(config) 编译器报错提示

return xhr(config)
编译器报错提示
图片描述

 export interface AxiosRequestConfig {
  url:string
  method?:Method
  data?:any
  params?:any
  headers?:any
  responseType?: XMLHttpRequestResponseType
}
 // "" | "arraybuffer" | "blob" | "document" | "json" | "text"
export interface AxiosResponse {
  data: any
  status: number
  statusText: string
  headers: any
  config: AxiosRequestConfig
  request: any
}

export interface AxiosPromise extends Promise<AxiosResponse> {
}

正在回答 回答被采纳积分+3

2回答

提问者 thinktown 2019-09-05 18:44:40
import { AxiosRequestConfig ,AxiosResponse} from '../types/index'

export default function xhr(config: AxiosRequestConfig) {

    return new Promise ((resolve)=>{
        const { data = null, url, method = 'get' ,headers={},responseType} = config
        
        const request = new XMLHttpRequest()
        
        if(responseType){
            request.responseType = responseType
            }
        request.open(method.toUpperCase(), url, true)
        
        // 监听返回请求
        request.onreadystatechange = function handleLoad() {
            if(request.readyState !== 4){
            return
            }
        
        const responseHeaders = request.getAllResponseHeaders()
            const responseData = responseType && responseType !== 'text' ? request.response : request.responseText
            const response: AxiosResponse = {
            data: responseData,
            status: request.status,
            statusText: request.statusText,
            headers: responseHeaders,
            config,
            request
        }
        resolve(response)
    }
    // data 为空时,删除 content-type
    Object.keys(headers).forEach((name)=>{
        if(data === null && name.toLowerCase() === 'content-type'){
            delete headers[name]
        }else{
            request.setRequestHeader(name,headers[name])
            }
        })
        request.send(data)
    })
}


0 回复 有任何疑惑可以回复我~
  • 你给 xhr 函数的返回值类型标记为 AxiosPromise 再试试
    回复 有任何疑惑可以回复我~ 2019-09-06 09:36:45
ustbhuangyi 2019-08-28 09:56:08

你的 xhr 函数怎么写的?

0 回复 有任何疑惑可以回复我~
  • 提问者 thinktown #1
    老师,代码我贴出来了。在另一个评论里面。
    回复 有任何疑惑可以回复我~ 2019-09-05 18:45:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信