darcy

Results 2 comments of darcy

1. environment:win10, zeal 0.4.0(current latest), vscode 1.17.2 2. error: start dash-plugin:// “can't find application”

> @MrErHu 关于nextListener的理解好像有点问题,源码中的那段注释并不是说明增加一个nextListeners的原因的,增加nextListener这个副本是为了避免在遍历listeners的过程中由于subscribe或者unsubscribe对listeners进行的修改而引起的某个listener被漏掉了。比如你在遍历到某个listener的时候,在这个listener中unsubscribe了一个在当前listener之前的listener,这个时候继续i ++的时候就会直接跳过当前listener的下一个listener,不知道有没有描述清楚 如果是为了避免这种case的话,也没有必要增加nextListeners呀,通过listeners = currentListeners就能解决问题。 即便是在某个listener执行中出现了subscribe/unsubscribe , 只要对currentListeners进行新的赋值操作即可:或使currentListeners数组+1,或使currentListeners数组-1。可是无论如何,listeners依旧保持着循环之前的订阅数组的引用,也就是说用于循环的这个数组在这种情况下是稳定的,也就不会发生“跳过”。