以下信息主要做笔记记录,未详细整理文字,仅供参考。
流程是我使用自定义的滑动杆组件,在抬起的事件中执行testEventLoop方法(代码见图3),抬起手指后,迅速再次拖动滑动杆,这时因为JS线程阻塞,导致需要等testEventLoop方法中代码全部走完,手势事件才会发给自定义组件,导致了较长时间的响应滞后。
第一步确认promise的then里面跑代码依然阻塞JS线程,影响手势事件的开始。
当我给promise加了await时,执行顺序时123,去掉await是132
定时器 在最后才跑
我是把InteractionManager.runAfterInteractions去掉后测得,如果加上这个方法,方法中的代码像是又增加了任务 ,会被推迟执行,promise中的runafterinteractions中的代码也会推迟到前面标记的3后面执行。
也是等then里面跑完 才会收到touches
也测试了then中InteractionManager.runAfterInteractions中的代码,也是会阻塞的.原因:这个代码块开始的时候 交互实际上还没开始
这个函数使里面的循环推迟约3毫秒执行