Я пытаюсь создать проект, в котором человек может создать вопрос и ответ.Я использую Laravel и Vuex.
Я бы хотел создать переменную с именем Question_id с response.data после того, как я вызвал axios.post для создания вопроса.Затем я хотел бы вызвать функцию с этим Question_id.
Теперь я заметил, что не могу этого сделать, потому что, когда я пытаюсь установить переменную question_id в .then части моего axios.post, это происходит после того, как я вызываю другую функцию.Другими словами, часть .then происходит после запуска всего моего другого кода.
qaForm(){
axios
.post("/api/question/create", this.questionForm)
.then(response => {
question = response.data;
question_id = question.id;
})
.catch(error => {
console.log(error.response);
});
addQuestion(question_id);
}
Я могу подтвердить это своим утешением.Если я проведу этот эксперимент:
qaForm(){
console.log("before axios post"); // runs 1st
axios
.post("/api/question/create", this.questionForm)
.then(response => {
console.log("inside axios.then"); // runs 3rd
question = response.data;
question_id = question.id;
})
.catch(error => {
console.log(error.response);
});
console.log("after axios post"); // runs 2nd
addQuestion(question_id);
}
Я получу:
before axios post
after axios post
inside axios.then
Почему так происходит?Я делаю какие-либо ошибки?Каковы некоторые возможные обходные пути?