Переменная не установлена ​​после простого утверждения - PullRequest
0 голосов
/ 04 марта 2019

Я создаю интерфейсное приложение с 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))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...