Open xinglie opened 11 months ago
并发>递归>普通代码
如果一个view通过assign接收外部参数受控
view
assign
则该view所有与异步相关的地方均需要通过stable检测,确保view在稳定状态下才进入后续的处理
stable
否则后续拿到的数据会不正确
view接收到外部数据后,在某个时刻异步,比如在render中渲染界面
render
在异步结束前,又通过过assign接收到新的参数
此时mark的工作是正常的,但是参数不是
mark
这是一个持续追踪了1年半的问题
View#stable
如果一个
view
通过assign
接收外部参数受控则该
view
所有与异步相关的地方均需要通过stable
检测,确保view
在稳定状态下才进入后续的处理否则后续拿到的数据会不正确
复现
view
接收到外部数据后,在某个时刻异步,比如在render
中渲染界面在异步结束前,又通过过
assign
接收到新的参数此时
mark
的工作是正常的,但是参数不是