Метод в службе не определен при выполнении, но не при входе в консоль
У меня есть 2 класса обслуживания
Класс_пользователей
import axios from "axios";
export default class {
constructor(){
this.http= axios.create({baseURL:"/api/users/"});
}
getUser(userId){
return this.http(userId);
}
}
Бизнес-класс
import axios from "axios";
import AppState from "../utils/appState";
export default class {
constructor(){
this.http= axios.create({baseURL:"/api/business/"});
this.appState = new AppState();
}
async getAllBusiness(){
try{
let result =await this.http("all");
this.appState.save('all_business', result.data);
}catch(ex){
console.log("AllBusiness",ex);
}
return;
}
}
Когда я импортирую и создаю экземпляр из них в моем компоненте vue, у первого есть все его методы. Но второй теряет свои методы в коде.
Когда я помещаю точку отладки и регистрирую ее, она будет регистрироваться как метод. Но когда я выполняю его, он будет регистрировать ошибку.
//before export default
import UserService from "../Services/UserService";
import BusinessService from "../Services/BusinessService";
//inside export default
async created(){
this.$UserService = new UserService();
this.$BusinessService = new BusinessService();
let result = await this.$UserService.getUser(this.id); //=> this one works
await this.$BusinessService.getAllBusiness(); //=>this one logs this.$BusinessService.getAllBusiness is not a function
}
Я также попробовал эти два способа определить метод
getAllBusiness(){
return new Promise((resolve,reject)=>{
this.http("all")
.then((result)=>{
this.appState.save('all_business', result.data);
resolve()
});
.catch(()=>{reject()});
});//also tried with bind(this)
}
getAllBusiness=()=>{
return new Promise((resolve,reject)=>{
this.http("all")
.then((result)=>{
this.appState.save('all_business', result.data);
resolve()
});
.catch(()=>{reject()});
});//also tried with bind(this)
}
Использование консоли.лог(это.$BusinessService.getAllBusiness) в отладке покажет ƒ getAllBusiness () {... содержание кода.
Но при наведении на него во время отладки в chrome он будет отображаться неопределенным

Можете ли вы предоставить образец репозитория GitHub, который воспроизводит проблему?
Источник
Ответы - Метод в службе не определен при выполнении, но не при входе в консоль / Method in service is undefined when executing but not when logging to console


Я забыл добавить await в мой вопрос. Но это есть в коде. Я буду редактировать, чтобы добавить. Тай за уведомление. Я также попытался дождаться тогдашней части и сделать метод асинхронным. Это не сильно изменилось. Кроме того, выполняя код, я даже не ввожу метод. Поэтому я даже не ударил эту часть, чтобы она дала мне ошибку. Это то, как он определен, что приведет к тому, что preproccessed js не сможет определить метод?
Помочь в развитии проекта: