簡體   English   中英

從AngularJS中的Promise.then()返回API響應

[英]Return an API response from a Promise.then() in AngularJS

我是AngularJS的新手,想在AngularJS中編寫一個試圖刪除用戶的函數。 成功后,它應該返回一個布爾值,該值確定是否成功刪除了他。

無論如何,即使Api-Response為假,從諾言中提取的結果也始終返回true。 我嘗試提取響應,如下所示: 從Angular中的promise返回值 我也嘗試了其他鏈接,但是它們都沒有真正幫助我解決問題。

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並返回false ,它只是對請求成功完成的angularjs說,結果為false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM