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示例吗?