[英]Return values from SetTimeout function ( Promise.Then())
[英]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.