Я создаю интерфейсное приложение с vue.js (используя vue-cli для его тестирования) в Firefox.Я также использую three.js.
Иногда (примерно в 20% случаев) одна из моих переменных не модифицируется простым оператором a = a + b, где b не равно 0.
Если я приостанавливаю свой код и вручную изменяю переменную на любое значение через отладчик, тогда он работает.
Я проверил с помощью console.log (ниже), отладчика Firefox, отладчика VSCode (с использованием firefox).Я собираюсь попробовать хром как можно скорее.
Эта часть кода напрямую не связана с vue.js или three.js, она живет независимо в моем классе.Ни одна из этих переменных не модифицируется за пределами кода.
if (this._cardId === 3 && this.id === 58) {
console.log("A: this._currentHeightUpdateTimer", this._currentHeightUpdateTimer, "delta", delta)
console.log("this._currentHeightUpdateTimer = this._currentHeightUpdateTimer + delta")
}
this._currentHeightUpdateTimer = this._currentHeightUpdateTimer + delta
if (this._cardId === 3 && this.id === 58) {
console.log("B: this._currentHeightUpdateTimer", this._currentHeightUpdateTimer, "delta", delta)
}
A: this._currentHeightUpdateTimer 0 delta 33035
this._currentHeightUpdateTimer = this._currentHeightUpdateTimer + delta
B: this._currentHeightUpdateTimer 0 delta 33035
Я ищу советы или указания для просмотра.
Редактировать: весьфайл класса .
Edit2: это цикл из three.js, вызывающий метод:
_update() {
const delta = this._getDelta()
this.cortex.update(delta, this.scene.container) // here
this.mouse.update()
this.scene.render()
requestAnimationFrame(this._update.bind(this))
}