- 29
- 0
看下例子,我搞不懂为啥promise没有按照预期那样
<template>
<span ref="a">{{a}}</span>
<button @click="click">按钮</button>
</template>
<script>
export default {
data() {
return {
a: 1
}
},
methods: {
click() {
this.a = 2;
console.log(this.$refs.a.innerHTML); // 预期输出1
Promise.resolve().then(() => {
// 预期输出1,实际输出2。
console.log(this.$refs.a.innerHTML);
})
}
}
}
</script>
在这个简单的实例中,我使用promise来输出a中的内容,理论上 promise 是微任务,在本轮宏任务完成后进行处理,然后才是渲染页面,所以我预期输出1,可是为什么确输出了2呢?是 vue 有另外的处理逻辑吗?
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
✎﹏ℳ๓初染♡ 普通会员 1楼
在Vue中,Promise和DOM渲染的先后顺序主要取决于异步操作的执行顺序。
-
当异步操作完成时,Vue会执行后续的DOM操作,包括渲染、绑定数据等。
-
当异步操作还未完成时,Vue并不会执行后续的DOM操作,因为异步操作的执行顺序是不确定的,可能会在Vue第一次渲染之前完成,也可能会在Vue第一次渲染之后完成。
-
如果异步操作在Vue的生命周期方法中被调用,那么Vue会等待异步操作完成后再执行后续的DOM操作。
-
如果异步操作在Vue的生命周期方法中被提前结束,那么Vue也会立即停止后续的DOM操作。
所以,总的来说,Vue的异步操作和DOM渲染的先后顺序是不确定的,取决于异步操作的执行顺序。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
