繁体   English   中英

jquery ajax完全等同于axios

[英]jquery ajaxComplete equivalent in axios

开始学习 axios,我很喜欢!

快速提问,找不到答案,也许没有。

在 jQuery ajax 中有一个叫做 ajaxComplete 的方法,我在想 axios 中是否有一个等效的方法?

axios 使用承诺。 您可以使用

axios.get(url,[options]).then(res=>{
/* hande it here */
})

如果您没有基本知识,请查看 js promises 的工作原理https://web.dev/promises/

对于全局处理 axios 事件,这可能有助于https://auralinna.blog/post/2019/global-http-request-and-response-handling-with-the-axios-interceptor/

不,那里没有。 jQuery 的$.ajax有一个 function 构建,它在请求完成时触发一个事件。 这是ajaxComplete事件。

Axios 没有这样的行为,但您可以使用CustomEvent接口构建自己的行为。 或者 / 并假设document上有一个方法axiosSuccess并调用它。

const axiosGet = async url => {
  try {
    const response = await axios.get(url)
    const axiosSuccessEvent = new CustomEvent('axiossuccess', {
      detail: { url, response }
    })
    document.dispatchEvent(axiosSuccessEvent)
    if (typeof document.axiosSuccess === 'function') {
      document.axiosSuccess({ url, response })
    }
    return response
  } catch (error) {
    console.log(error)
  }
}

然后在文档上监听你自己的事件。

document.addEventListener('axiossuccess', event => {
  const { detail } = event
  const { url, response } = detail
  console.log(url, response)
})

document.axiosSuccess = ({ url, response }) => {
  console.log(url, response)
}

axiosGet('https://stackoverflow.com/questions/63998921/')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM