我读过Johnpapa AngularJS样式指南,这真的很有趣。 但是,有一些我不明白的东西,它是捕手工厂的例外,有人可以给我一个示例代码.. https://github.com/johnpapa/generator-hottowel/blob/master/app/templates/src/client/app/blocks/exception/exception.js
下面
function catcher(message) { return function(e) {...}; }
我们如何提供消息和承诺(e)参数? 抱歉我的英文不好,我是法国人^^
答案 0 :(得分:1)
它只是一个抽象,因此您不必在应用程序的每个点上抛出异常。如果您这样做并决定更改打印异常消息的方式,则必须更改应用中的许多位置。有了这个工厂,你可以在一个地方改变它。
catcher
是一个封闭(read here what a closure is)。它基本上是一个返回函数的函数,然后可以使用另一个值调用该函数。想想它,因为你正在准备捕手和你的消息,然后插入应该报告的值。在他的数据服务中,你看到他使用捕手如下:
function getPeople() {
return $http.get('/api/people')
.then(success)
.catch(fail);
...
function fail(e) {
return exception.catcher('XHR Failed for getPeople')(e);
}
利用闭包,你也可以这样做:
function getPeople() {
return $http.get('/api/people')
.then(success)
.catch(exception.catcher('XHR Failed for getPeople'));