我是 AngularJS 的新手,想在 AngularJS 中编写一个函数,尝试删除用户。成功时它应该返回一个 bool 值,它确定他是否被成功删除。
无论如何,即使 Api-Response 为 false,从 Promise 中提取的结果也始终返回 true。我尝试提取此处写的响应: Return value from a promise in Angular 。我还尝试了其他链接,但没有一个真正帮助我解决我的问题。
用户.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 响应状态代码应该表示出现错误,例如 500 ( https://developer.yahoo.com/social/rest_api_guide/http-response-codes.html )。
当您返回状态代码 200 和结果 false
时,它只是告诉 angularjs 请求已成功完成及其结果 false
关于javascript - 从 AngularJS 中的 Promise.then() 返回 API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57354552/