次のコードがあります
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% の確率でしか発生しません。これは、2 番目の if ステートメントでは 2 つが等しくなく、エラー メッセージを出力すると等しくなるような競合状態がコードに含まれているかのようです。
何か案は?