今天查一个bug,过程比较麻烦,但结论值得注意一下。
1、view中绑定了“result”变量,通过watch监听变量“name”变化,每当name变化,则触发"result = false"。
2、点击按钮触发函数func,函数中有赋值”result = true“,但是函数执行完后,result却为false,view没有变化。
查bug过程中,发现函数func中,首先对变量 name 进行了校正,也就是改变了name值,自然会触发 watch,得到”result = false“。在函数结尾时对result进行赋值,”result = true“。但是结果却是”result = false“。通过添加调试信息,得到结论:
只有函数主流程结束后才会进入 watch 监听流程。所以在函数中无论 ”name的变化“ 在前还是在后,都是最后才进入watch流程,不会打断主函数执行过程。