На данный вопрос уже ответили:
Вопрос находиться в комментариях к коду.
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)
)
}
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Нужно передать диву ширину, значение которой вычисляется в JS
Добрый вечер, прошу помощи! Есть линейный массив:
Всем хорошего настроенияПишу макрос в мазиле, использую Imacros и столкнулся с такой проблемой
Пользователь выбирает из select какой-то option, каждый option имеет какое-то значение (Например: 10000), потом вводит в input число , и значение в option умножается...