На данный вопрос уже ответили:
Вопрос находиться в комментариях к коду.
export default class Abstract {
construct(field = 'defaultField') {
this.field = field;
}
method() {
const promise = new Promise((resolve, reject) => {
resolve('newField');
});
promise.then(
(newField) => { this.field = newField; }
);
console.log(this.field); // defaultField - Почему? И как изменить this.field на newField?
// Получается я устанавливаю поле this.field для функции then?
}
}
Потому что console.log — синхронная функция, а Promise — асинхронный. Вот и получается, что console.log показывает тебе this.field раньше, чем он успевает изменить своё значение
Пробуй так проверить сам:
// ...
method() {
const promise = new Promise((resolve, reject) => {
resolve('newField');
})
promise.then(newField => {
this.field = newField
console.log(this.field)
)
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости