javascript - 从 AngularJS 中的 Promise.then() 返回 API 响应

标签 javascript angularjs spring-boot

我是 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/

相关文章:

java - 如何在 GET 方法中为 spring boot Controller 类传递多个路径变量?

java - 如何在 Spring 中缩小动态 HTML 响应?

java - hibernate + Spring 启动2 : Not checking the default schema

javascript - 通过 Javascript 检查页面是否正在加载某些内容

javascript - 无法显示上次访问日期

javascript - 聚焦动态创建的元素

javascript - AngularJS 摘录函数

javascript - Angular js 绑定(bind)表达式不显示值

javascript - Angularjs根据状态选择ng模板进行编辑或显示

php - 从 php 表单操作输出 AJAX 响应的一部分