0

Я пишу Угловое приложение, исходящее из фона PHP. Каков стандартный подход к инициализации и обработке ошибок. Например, возьмите мою фабрику токенов JWT.Инициализация Javascript и обработка ошибок

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? Если я установил их неопределенными, я верю, что моя функция должна быть токеном! == undefined?

И наконец, если сказано, что недействительный токен прошел, например. 123 Как это должно быть обработано, обычно ли бросать, как я бы в PHP? Я еще слишком часто вижу обработку ошибок в JavaScript, чтобы узнать лучший способ справиться с этим?

ответ

0

Null or undefined - это вопрос стиля. Выберите один из них и будьте последовательны. Ключ в js-тест для фальшивых или критических значений. Это ваш метод может возвращать! Токен, так что если токен имеет значение null или undefined или '' будет ложным и истинным в противном случае. Эффективная практика заключается в том, чтобы обернуть свой код в самоназывающую анонимную функцию и сделать неопределенным в качестве параметра, потому что это не резервное слово в js, и любой может назначить значение неопределенным.

(function(angular, $, undefined){ 

}(angular,jQuery)); 

обработки у вас есть попробовать/поймать, чтобы справиться с неожиданным поведением или вы можете бросить ошибки Exception (бросить «Неожиданный маркер»). Снова вы можете поймать ошибки, которые вы бросаете с помощью try/catch.

+0

Могу ли я спросить, какой из двух методов вы используете? –

+0

Я делаю все, о чем я только что сказал вам :-) Иногда иногда лучше использовать функцию, чтобы вызывать значимую ошибку, чтобы вы могли отлаживать попытку try/catch, чтобы ваш пользователь не видел каких-либо wierd-сообщений на консоли или ui – Raulucco

Смежные вопросы