gpt4 book ai didi

angularjs - 在 AngularJS 中使用 success/error/finally/catch 和 Promise

转载 作者:行者123 更新时间:2023-12-02 19:39:04 25 4
gpt4 key购买 nike

我在 AngularJs 中使用 $http,但我不确定如何使用返回的 Promise 和处理错误。

我有这个代码:

$http
.get(url)
.success(function(data) {
// Handle data
})
.error(function(data, status) {
// Handle HTTP error
})
.finally(function() {
// Execute logic independent of success/error
})
.catch(function(error) {
// Catch and handle exceptions from success/error/finally functions
});

这是一个好方法,还是有更简单的方法?

最佳答案

Promise 是语句的抽象,它允许我们用异步代码同步地表达自己。它们代表一次性任务的执行。

它们还提供异常处理,就像普通代码一样,您可以从 Promise 返回,也可以抛出异常。

您想要的同步代码是:

try{
try{
var res = $http.getSync("url");
res = someProcessingOf(res);
} catch (e) {
console.log("Got an error!",e);
throw e; // rethrow to not marked as handled
}
// do more stuff with res
} catch (e){
// handle errors in processing or in error.
}

promise 版本非常相似:

$http.get("url").
then(someProcessingOf).
catch(function(e){
console.log("got an error in initial processing",e);
throw e; // rethrow to not marked as handled,
// in $q it's better to `return $q.reject(e)` here
}).then(function(res){
// do more stuff
}).catch(function(e){
// handle errors in processing or in error.
});

关于angularjs - 在 AngularJS 中使用 success/error/finally/catch 和 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23559341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com