Axios发起HTTP请求时的先后执行顺序
书写如下代码时,日志输出的顺序不可控,可能是"you How are",也可能是"you are How"
<script>
import axios from 'axios'
export default {
created() {
this.fn1()
this.fn2()
console.log('you')
},
methods: {
fn1() {
axios.get('https://random.dog/woof.json')
.then(ret => {
console.log('How')
}).catch(e => {
console.log(e)
})
},
fn2() {
axios.get('https://random.dog/woof.json')
.then(ret => {
console.log('are')
}).catch(e => {
console.log(e)
})
}
}
}
</script>
如果希望日志输出顺序是"How are you",方案1代码如下:
<script>
import axios from 'axios'
export default {
name: 'App',
async created() {
await this.fn1()
await this.fn2()
console.log('you')
},
methods: {
fn1() {
return axios.get('https://random.dog/woof.json')
.then(ret => {
console.log('How')
}).catch(e => {
console.log(e)
})
},
fn2() {
return axios.get('https://random.dog/woof.json')
.then(ret => {
console.log('are')
}).catch(e => {
console.log(e)
})
}
}
}
</script>
如果希望日志输出顺序是"How are you",方案2代码如下:
<script>
import axios from 'axios'
export default {
async created() {
await this.fn1()
await this.fn2()
console.log('you')
},
methods: {
async fn1() {
const ret = await axios.get('https://random.dog/woof.json')
console.log('How')
console.log(ret.data)
},
async fn2() {
const ret = await axios.get('https://random.dog/woof.json')
console.log('are')
console.log(ret.data)
}
}
}
</script>
原文地址:https://blog.csdn.net/u011690675/article/details/145279004
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!