TypeScript
import axios from "axios"
import qs from "qs"
interface $getData {
api: string
data: any
method: string
modal: string
beforeRes(): void
success?(res: any): void
fail?(err: any): void
complete(): void
}
interface Promise {
finally(): void
}
// 自定义ajax方法
function getData({
api = '',data = null,modal = "form",method = "get",success = false,fail = false,complete = false,beforeRes = false
}: $getData
) {
let fetched: any
beforeRes && (beforeRes())
// 如果是get
if (method == 'get') {
fetched = axios({
method: method,url: api,params: {
...data
}
})
} else if (modal == 'form') {
fetched = axios({
method: method,data: qs.stringify(data)
})
} else if (modal == 'json') {
fetched = axios({
method: method,data: {
...data
}
})
} else {
return false
}
fetched.then((res: any) => {
success && (success(res))
return {result:true,res:res}
}).catch((err: any) => {
fail && (fail(err))
return {result:false,err:err}
}).finally(() => {
complete && (complete())
})
}
export {
getData
}