Javascript 服务中的方法在执行时未定义,但在登录到控制台时未定义

Javascript 服务中的方法在执行时未定义,但在登录到控制台时未定义,javascript,vue.js,Javascript,Vue.js,我有两个服务班 用户类 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/ap

我有两个服务班

用户类

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)
 }
在调试中使用console.log(this.$BusinessService.getAllBusiness)将显示ƒgetAllBusiness(){…代码的内容


但在chrome中调试时,悬停在它上面会显示未定义的

,问题似乎在于这一行

.then((result)=>{
        this.appState.save('all_business', result.data);
        resolve()
      });
在这种情况下,您不会返回。请尝试从
然后
返回结果


另外,
await
可能需要在
async
函数中

这一行似乎有问题

.then((result)=>{
        this.appState.save('all_business', result.data);
        resolve()
      });
在这种情况下,您不会返回。请尝试从
然后
返回结果


另外,
await
可能需要在
async
函数中

我忘记在我的问题中添加await。但是它在代码中。我会编辑为add.Ty以获得通知。我还尝试等待then部分并使方法异步。它没有太大变化。而且,执行代码时我甚至没有输入方法。所以我甚至没有点击它它的一部分给了我一个错误。它的定义方式会导致预处理的js无法定义方法吗?我忘了在我的问题中添加wait。但它在代码中。我会编辑为add.Ty以获得通知。我还尝试等待then部分并使方法异步。它没有太大变化。而且,执行我甚至没有输入的代码方法。所以我甚至没有点击该部分来给我一个错误。它的定义方式是否会导致预处理的js无法定义方法?你能提供一个重现问题的GitHub repo示例吗?你能提供重现问题的GitHub repo示例吗?