Call(apiurl, model) {
return new Promise((resolve, reject) => {
this.adminService.add<any>(apiurl, model).toPromise().then(res => {
return resolve({
'error': false,
'data': res
});
}), error => {
return reject({
'error': true,
'data': error
});
}
});
}
这是我的职责。 当我调用这个函数并且 API 响应是 200 Ok 响应时,它会返回响应,但是当 API 抛出错误时,它不会返回错误
public add<T>(APIpath, data): Observable<T> {
return this.http.post<T>(apiPath, data);
}
这是我的通用函数,用于调用 API 的调用函数
this.Result = await this.Call("API Path", Model);
这是调用此函数的代码,我想将响应存储在此结果变量中
最佳答案
这是因为错误 block 放置错误。您可以按如下方式更改代码以使其正常工作。希望您正在使用 TypeScript
var promise = new Promise(function(resolve, reject){
return this.adminService.add<any>(apiurl, model).toPromise().then(res=>{
resolve({
'error': false,
'data': res
})
}).catch(error=>{
resolve({
'error': true,
'data': error
})
});
});
请注意 catch
block 并删除了 return
语句。
关于angular - Promise 函数在 Angular 6 中不返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59299307/