我有以下代码
if (msg.position == 0)
//removed for brevity
else if (msg.position == txtArea.value.length)
//removed for brevity
else {
//ERROR: should not reach here.
errorDivTag.innerHTML += msg.position + " " + txtArea.value.length;
}
我遇到了一些非常奇怪的情况,在最后一个代码块中出现错误,但打印的位置显示msg.position
实际上等于txtArea.value.length
. 这只发生在 1% 的时间里,就好像我的代码中有某种竞争条件,在第二个 if 语句中两者不相等,但在我打印错误消息时相等。
有任何想法吗?