Задача / вопрос: Как запустить метод, который включает в себя асинхронный запрос, и выполнить код только по завершению работы этого метода.
Решение очень простое — вернуть промис. Т.е. достаточно добавить return перед вызовом функции axios(...
get_user_data: function(){
return axios(/* Ваши настройки вызова axios */).then(response => {
// Сохраняем полученные данные
this.user = response.data.user_data;
});
},
/* А в компоненте из другой части галактики */
method_after_async: function(){
this.get_user_data().then(() => {
// Выполнить действия с данными,
// которые были получены в асинхронном методе get_user_data
});
}
Если нам нужно чтобы асинхронный метод get_user_data что-то возвращал, то код будет выглядеть так:
get_user_data: function(){
return axios(/* Ваши настройки вызова axios */).then(response => {
this.user = response.data.user_data;
return 'some data to return';
});
},
method_after_async: function(){
this.get_user_data().then((args) => {
console.log(args);
});
}
Комментарии (0)
Не писать ответ