在AngularJS中使用success/error/finally/catch与Promises

前端之家收集整理的这篇文章主要介绍了在AngularJS中使用success/error/finally/catch与Promises前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在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
    });

这是一个很好的方法吗,还是有更容易的方法

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

他们还提供异常处理,就像正常的代码,你可以从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.
}

promisified版本非常相似:

$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.
});
原文链接:https://www.f2er.com/angularjs/146965.html

猜你在找的Angularjs相关文章