# san/no-async-in-computed-properties
computed 属性中不允许异步行为。
- ⚙️ 此规则包含于
"plugin:san/essential"
,"plugin:san/strongly-recommended"
和"plugin:san/recommended"
.
计算属性应该是同步的。 它们内部的异步操作可能无法按预期工作,并可能导致意外行为,应该避免使用它们。
# 📖 规则细节
此规则目的是防止在计算属性中调用异步方法。
<script>
export default {
computed: {
/* ✓ GOOD */
foo () {
var bar = 0
try {
bar = bar / this.data.get('a')
} catch (e) {
return 0
} finally {
return bar
}
},
/* ✗ BAD */
pro () {
return Promise.all([new Promise((resolve, reject) => {})])
},
foo1: async function () {
return await someFunc()
},
bar () {
return fetch(url).then(response => {})
},
tim () {
setTimeout(() => { }, 0)
},
inter () {
setInterval(() => { }, 0)
},
anim () {
requestAnimationFrame(() => {})
}
}
}
</script>
# 🔧 配置
暂无。