Добро пожаловать в мир «this» в JavaScript.
Функции стрелок связаны с контекстом выполнения - в этом примере он будет вызываться с неким «this», исходящим из внутренних элементов Promise.
Вы можете принудительно вызвать контекст вызова, используя обычную функцию в сочетании с "bind (...)".
Пожалуйста, взгляните на следующий пример.
Promise
.resolve("new value")
.then((res) => {
this.myProp = res;
});
Не будет работать, но это:
Promise
.resolve("new value")
.then(function(res){
this.myProp = res;
}.bind(this));
будет.
Посмотрите на этот jsfiddle, который воспроизводит вашу проблему (откройте devtools браузера, чтобы увидеть вывод консоли) https://jsfiddle.net/mg7pjLz0/4/