javascript - 从 AngularJS 中的 Promise.then() 返回 API 响应
问题描述
我是 AngularJS 的新手,想在 AngularJS 中编写一个函数,试图删除一个用户。成功时它应该返回一个布尔值,确定他是否被成功删除。
无论如何,从 Promise 中提取的结果总是返回 true,即使 Api-Response 为 false。我尝试提取此处所写的响应:Return value from a promise in Angular。我也尝试了其他链接,但它们都没有真正帮助我解决我的问题。
user.controller.js:
deleteUser(user) {
const self = this;
self.userActionPromise = self.userService.deleteUser(user.id).then(deleted => {
if (deleted) {
self.messagesService.successMessage('user.DELETE_SUCCESS');
self.loadUsers();
} else {
self.messagesService.errorMessage('user.DELETE_FAILURE');
}
});
}
user.rest.service.js:
self.user = $resource(config.restServerUrl + 'users/:id', {id: '@id'}, {
delete: {method: 'DELETE'}
});
deleteUser(id) {
return this.user.delete({id: id}).$promise.then(deleted => {
return !!deleted;
});
}
解决方案
的结果
return this.user.delete({id: id}).$promise.then(deleted => {
return !!deleted;
})
请求完成时始终返回 true。
如果要覆盖失败结果:
return this.user.delete({id: id}).$promise.then(deleted => {
return deleted;
}, function (error) {
return error;
})
当服务器返回错误https://www.baeldung.com/spring-boot-custom-error-page时将执行第二个函数
Http 响应 statusCode 应该说出现错误,例如 500 ( https://developer.yahoo.com/social/rest_api_guide/http-response-codes.html )。当您返回状态码 200 和 resultfalse
时,它只是告诉 angularjs 请求成功完成及其结果false
推荐阅读
- python - 如何使用 venv 在 Python 3.7.2 中解决多处理停止工作问题
- oracle - PLSQL - 按组生成服务器列表
- scala - 来自kafka的火花流如何指定轮询事件的截止时间
- excel - 使用 VBA 格式化注释中的行
- javascript - 反应:按钮 onClick 功能在页面加载时运行,但不是您单击它
- azure-cosmosdb - 如何为 CosmosDB id 字段选择一个好的值集?
- reactjs - 获取 GET 请求在 200 响应之外的任何内容上命中 .catch()
- websphere-8 - com.ibm.ws.webcontainer.exception.WebAppNotLoadedException:部署应用程序时 WAS 8.5.5.13 抛出此错误
- grails - grails g:select 增加多选框的大小
- json - 如何在 HTTP Post 请求的 URLSession 中访问 JSON 响应?