Typescript 为什么我的承诺链没有解决?

Typescript 为什么我的承诺链没有解决?,typescript,vue.js,axios,Typescript,Vue.js,Axios,我刚刚开始使用承诺。我在VUE组件中编写了此方法。通过调试,api将返回数据并到达注释行 当函数返回时,它永远不会到达原始调用方。然后方法。我设置的两个警报都不起作用 我构建我的承诺链是错误的还是什么 入口功能 mounted() { PersonApi.Get(this.personId).then((response) => { alert('done'); this.person = response;

我刚刚开始使用承诺。我在VUE组件中编写了此方法。通过调试,api将返回数据并到达注释行

当函数返回时,它永远不会到达原始调用方。然后方法。我设置的两个警报都不起作用

我构建我的承诺链是错误的还是什么

入口功能

mounted() {
        PersonApi.Get(this.personId).then((response) => {
            alert('done');
            this.person = response;
            this.loading = false;
        }).catch((error) => {
            alert(error);
        });
    }
打电话的图书馆

import axios from 'axios'

export default class PersonApi {
    private static ResolveApiResponse(response: any): Promise<any> {
        return new Promise((resolve) => {
            if (response.errors != undefined && response.errors.length > 0) {
                return Promise.reject(response.errors);
            }

            return Promise.resolve(response.Data); // code is getting to this line
        });
    }

    public static Get(id: number): Promise<any> {
        return axios.get('/api/Person/' + id)
            .then((response: any) => {
                return PersonApi.ResolveApiResponse(response.data);
            }).catch((error: any) => {
                return Promise.reject(error);
            });
    }
}
从“axios”导入axios
导出默认类PersonApi{
私有静态ResolveApiResponse(响应:任意):承诺{
返回新承诺((解决)=>{
if(response.errors!=未定义&&response.errors.length>0){
返回承诺。拒绝(响应。错误);
}
返回Promise.resolve(response.Data);//代码将到达此行
});
}
公共静态Get(id:number):承诺{
返回axios.get('/api/Person/'+id)
。然后((响应:任意)=>{
返回PersonApi.ResolveApiResponse(response.data);
}).catch((错误:任意)=>{
返回承诺。拒绝(错误);
});
}
}
固定代码

更新至此

private static ResolveApiResponse(response: any): Promise<any> {
        return new Promise((resolve, reject) => {
            if (response.errors != undefined && response.errors.length > 0) {
                resolve(response.errors);
            }

            resolve(response.Data);
        });
    }
private静态ResolveApiResponse(响应:any):承诺{
返回新承诺((解决、拒绝)=>{
if(response.errors!=未定义&&response.errors.length>0){
解决(响应错误);
}
解析(response.Data);
});
}

解析承诺时,应调用传递的resolv函数对象,而不是使用
promise.resolve
函数生成新承诺

new Promise((resolv, reject) => {
    resolve('hello world'); // Resolv the promise
    Promise.resolve('Hello World'); // This makes a new promise that is directly resolved
})

通常,
Promise.resolve
仅当在api内部,您希望返回预缓存或模拟计算时才应使用。

解析承诺时,调用
resolve
而不是
Promise.resolve
,拒绝状态也是如此