import axios from 'axios'
export async function request(url, params={}, type='get', cancelToken){
const {data:{data=[]}} = await axios({
method: type,
timeout: 5 * 60000,
url,
[type.toLowerCase() == 'post' ? 'data': 'params']:Object.entries(params).reduce((pre,[key,val])=>(val || typeof val == 'number' ? pre[key]=val : '', pre),{}), // 移除空參數
headers: {},
cancelToken // source.token; // 取消請求
})
return data
}
// source.cancel('請求取消的原因');
// ======== js ==============
let source
async fucntion getData(){
source && source.cancel('取消了') // 觸發
source = axios.CancelToken.source(); // 重複請求時,重新賦值
let cancelToken = source.token
const res = await request('/url', {'params':''}, 'get', cancelToken)
}
getData()
<input v-on="itemOn('val1', 'col')"></input >
<script>
const von = {
change:(row, item)=>{}
}
function itemOn(row, item){
return Object.entries(item.textOn || {})
.reduce((pre,cur)=>(pre[cur[0]] = (arg) => pre[cur[1](row, item, arg)], pre),{})
}
</scrit>