我试图建立我的API服务在我VueJS使用Vuex应用。 我在重构了一些东西,以集中的错误处理,清理等我快到的问题是正确的,通过我的函数调用链接承诺的过程。
在根目录中,我有一个BaseService类,它只是让使用AXIOS(不是满级)API请求:
export abstract class BaseService {
protected readonly API: AxiosInstance; // Full init left out
protected deleteItem(url: string): Promise<any> {
return new Promise((resolve, reject) => {
this.API.delete(url)
.then((response: any) => {
resolve(response);
})
.catch((error: any) => {
this.handleError(error); // Local function that logs error
reject(error);
});
});
}
}
然后,我有一个层上方,其通过组装请求URL和处理数据管理器API的不同的功能:
class CompanyService extends BaseService {
private constructor() {
super();
}
public delete(id: number): Promise<any> {
return this.deleteItem(`${this.baseUrl}/api/companies/${id}`);
}
}
然后在我的Vuex行动我打电话companyService删除功能:
const action = {
COMPANY_DELETE(context: any, id: number) {
return new Promise((resolve, reject) => {
companyService // Instance of CompanyService
.delete(id)
.then((response: any) => {
console.log(response); // This logs successfully
resolve(response);
})
.catch((error: any) => {
console.log(error); // This logs successfully
reject(error);
});
});
}
};
通过我的意见指示两个控制台日志成功完成。 这个问题进来时,我得到它调用这个动作的组件:
this.$store
.dispatch("company/COMPANY_DELETE", company.id) // Namespaced
.then((response: any) => {
console.log(response); // Never gets called
})
.catch((error: any) => {
console.log(error); // Never gets called
});
这两个控制台日志不会被调用。 我在做什么错在这里?