Почему не работает код в then? [дубликат]

202
06 августа 2021, 15:20
На этот вопрос уже даны ответы здесь:
Потеря контекста вызова (5 ответов)
Закрыт 1 год назад.

Делаю запрос на сервер, после получения ответа хочу вызвать свое событие change-state и передать его в родительский компонент. Но ничего не происходит.

this.axios.post('/api/v1.0/word/create/', {
  'word': this.word,
  'translate': this.translate,
  'context': this.context
})
.then((response)=>{
  console.log(response);
  this.$emit('change-state', 'default');
});

Response в консоль печатается.

Если вынести эту строчку за пределы всей функции, то она работает, но не дожидается ответа:

this.axios.post('/api/v1.0/word/create/', {
  'word': this.word,
  'translate': this.translate,
  'context': this.context
})
this.$emit('change-state', 'default');

Почему это событие не срабатывает внутри then?

UPD: Проект учебный и почти пустой, залил его на гитхаб: https://github.com/kkomissarov/anki

Answer 1

Проблема была в том, что в момент, когда выполняется then, в this содержится несуществующий компонент. На самом деле, по моему вопросу это нельзя было понять, т.к. не приведен код компонентов.

READ ALSO
Nodemon не применяет изменения

Nodemon не применяет изменения

Впервые решил попробовать nodemonУстановил его, запускаю проект

194
Как влияет символ “Z” в конце даты на JS?

Как влияет символ “Z” в конце даты на JS?

Есть проблема с разницей во времени приgetHours()

254
Не могу добавить sonar server authentication token в jenkins

Не могу добавить sonar server authentication token в jenkins

При настройке SonarQube scanner plugin в jenkins столкнулся с проблемой добавления server authentication tokenПри нажатии на кнопку ничего не происходит + она съехала

201
Изменить скорость движения мяча с клавиатуры

Изменить скорость движения мяча с клавиатуры

Я создал обработчик нажатий клавиш, который передаёт инфу о нажатии keydown в переменную speed со значением в соответствии нажатия клавишЗначения...

227