axios取消請求, v-on

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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章