Javascript 已创建方法上的异步/等待-Vue2
我已经加载了Javascript 已创建方法上的异步/等待-Vue2,javascript,vue.js,axios,Javascript,Vue.js,Axios,我已经加载了vue元素包,在我的页面中添加了它的组件。vue: <vue-element-loading :active="isActive" :is-full-screen="true"/> 然后,当页面完成加载时,触发isActive至true: async created () { this.isActive = true await this.fetchData() this.isActive = false } fetchData是一个带有响应的axios
vue元素
包,在我的页面中添加了它的组件。vue:
<vue-element-loading :active="isActive" :is-full-screen="true"/>
然后,当页面完成加载时,触发isActive
至true
:
async created () {
this.isActive = true
await this.fetchData()
this.isActive = false
}
fetchData
是一个带有响应的axios get请求。这个想法是显示加载程序,直到axios正确启动并得到响应。但现在,我的加载程序显示0.1毫秒,然后消失
以下是fetchData
方法:
fetchData () {
axios.get(globalConfig.OFFERS_URL)
.then((resp) => {
this.offersData = resp.data
console.log(resp)
})
.catch((err) => {
console.log(err)
})
},
您的
fetchData()
似乎没有从调用axios.get()
返回Promise
,因此等待它将立即解决(即,axios.get()
完成之前)
修复方法是返回axios.get()的结果。
:
axios只是返回缓存结果吗?那会很快的。@MarkMeyer,我已经添加了我的方法,它会缓存吗?谢谢,现在可以了。在我的情况下,使用
return
有任何失败吗<代码>承诺是。然后
,对吗?关于回报承诺,每个人都想准确地使用return
语句?我的意思是,我仍然不明白js中承诺的概念,你能用简单的话解释一下吗?请看。
fetchData () {
axios.get(globalConfig.OFFERS_URL)
.then((resp) => {
this.offersData = resp.data
console.log(resp)
})
.catch((err) => {
console.log(err)
})
},
fetchData() {
return axios.get()
.then(/*...*/)
.catch(/*...*/);
}