来个 vue 大牛看下这个 computed 问题?

今天在面试的时候 面试官问 vue computed 是否能使用异步函数

我当时也是很懵逼 ,回来验证了一下发现
来个 vue 大牛看下这个 computed 问题?
能成功执行异步,但是 为什么 先打印了 fullName 后打印 res?

await 不应该会中断吗? 自己猜想是 获取 this.fullName 的时候 触发了 get 但是猜想含糊不清

有没有 大佬 跪求 解释一波.

如果可以 最好附上源码~

附上 测试地址

https://codepen.io/firstblood...


回答:

async修饰符声明的函数,需要搭配await修饰符运行才能变成异步,不然里面的代码该怎么执行还是怎么执行,不会等待函数里异步函数执行完成
来个 vue 大牛看下这个 computed 问题?

computed功能就是数据的getter,测试了下,js的getter是支持async的
来个 vue 大牛看下这个 computed 问题?

虽然js支持,但是vue在底层实现上并没有支持这个功能,这可能一是因为当时这个语法还没有或者较新,二是async返回值本质上就是Promise,这个加进去的话感觉改动太大,三是感觉异步的获取值,感觉对于页面的渲染会带来不可预估的副作用啊。比如a是异步的computed,那别的数据使用a去计算,不都要变成异步的?以点及面,整个系统的变量获取可能都要变成异步的,太恐怖了,太不可控了


回答:

computed特点:
1.不支持异步,不支持异步,不支持异步重要的事情说三遍(但可以有其他的解决方案)
2.可以是一对一,也可以一对多
3.它支持缓存

以上是 来个 vue 大牛看下这个 computed 问题? 的全部内容, 来源链接: utcz.com/p/937348.html

回到顶部