面试题答案
一键面试在Vue项目中使用async/await
处理axios异步请求及错误捕获可以如下实现:
<template>
<div>
<button @click="fetchData">获取数据</button>
<div v-if="data">
<pre>{{ data }}</pre>
</div>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
data: null
};
},
methods: {
async fetchData() {
try {
const response = await axios.get('your-api-url');
this.data = response.data;
} catch (error) {
console.error('请求出错:', error);
// 可以在这里进行错误提示等操作,例如使用Vue的消息提示插件
}
}
}
};
</script>
在上述代码中:
- 定义了一个
fetchData
方法,使用async
关键字标记,表明这是一个异步函数。 - 在
try
块中,使用await
等待axios.get
请求完成,await
会暂停当前异步函数的执行,直到Promise被解决(resolved)或被拒绝(rejected)。 - 如果请求成功,
await
会返回已解决的值(即响应数据),这里将响应数据赋值给组件的data
属性。 - 如果请求出错,代码会进入
catch
块,在这里可以捕获并处理错误,例如记录错误日志、向用户显示错误信息等。