Javascript初始化和错误处理
Javascript initialisation and error handling
我正在编写一个来自PHP背景的Angular应用程序。初始化和错误处理的标准方法是什么。以我的JWT代币工厂为例。
app.factory('Token', ['jwt_decode', function(jwt_decode) {
var token = null, expiry = null, role = null;
return {
get: function() {
return token;
},
set: function(value) {
token = value;
var data = jwt_decode(token);
expiry = data.exp;
role = data.role;
},
clear: function()
{
// performed on session expiry or logout.
token = null;
expiry = null;
role = null;
},
has: function()
{
return token !== null;
},
getRole: function()
{
return role;
},
getExpiry: function()
{
return expiry;
}
};
}]);
我已经将我的私有变量初始化为null,但我读过一些博客,这些博客建议我将它们保留为未定义的。如果我将它们保留为未定义,我的clean方法应该将它们设置回未定义或null吗?如果我将它们设置为未定义,我相信我的has函数应该是token!==未定义?
最后,如果传递了一个无效的令牌,例如123应该如何处理,像我在PHP中那样抛出是常见的吗?我在JavaScript中看到了太多错误处理,不知道处理它的最佳方法是什么?
空或未定义是一个风格问题。选择其中一个并保持一致。js中的键测试falsy或thruthy值。那是你的has方法可以返回!!令牌,因此如果该令牌为null或未定义,则"将为false,否则为true。将代码封装在一个自调用的匿名函数中并将undefine作为参数是一种很好的做法,因为它不是js中的保留字,任何人都可以为undefine赋值。
(function(angular, $, undefined){
}(angular,jQuery));
异常处理您必须尝试/catch来处理意外行为,或者您可以抛出错误(抛出"unexpected token")。同样,您可以用try/catch 捕获抛出的错误
相关文章:
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- RxJS:在循环中处理错误.js自定义驱动程序
- 通过 AJAX 检索 Blob 时处理错误消息
- Chai正如承诺:当承诺抛出错误时,处理错误
- 如何处理错误'控制台未定义'在powershell中
- Bloodhound的新Typeahead是如何处理错误的
- 请求管道处理错误
- Angular Jasmine SpyOn$resource处理错误
- 如何或如何使用firebase有效地处理错误
- 以处理错误的方式启动javascript承诺蓝鸟链
- JavaScript Regex over CSS:如何处理错误的类
- 模态中的 Django 形式:动态重定向和处理错误
- 在 Angular 中使用拦截器处理错误的通用方法
- Angular JSON-RPC:处理错误
- AngularJS - 处理错误错误:[ng:areq] 在此特殊情况下 (?)
- 绕过 javascript 的 chrome 和 FF 后台选项卡处理错误
- 如何使用 Q 和 JS 捕获或失败来处理错误
- 使用 window.onerror 和 try-catch 块处理错误之间的差异
- jQuery $.get 在处理错误时返回白色错误页
- 处理错误后提交索引数据库事务