Нулевая проверка для HttpHeaders в Angular 7 - PullRequest
1 голос
/ 19 июня 2019

Недавно я столкнулся со странной проблемой, когда у меня есть следующий фрагмент кода, который выполняется внутри моего перехватчика, и на ШАГЕ 1 я могу получить req.headers, однако, когда я достигаю ШАГА 2, я получаюисключение «Не удается прочитать свойство« длина »нулевого значения»

 private prepareUrlProperties(req: HttpRequest<any>) {
        let urlProperties = {};        
        if (req.headers) { // STEP 1
        try{
            const metaData = JSON.parse(req.headers.get('metadata') || '{}'); // STEP 2
        } catch (exp) {
           console.log(exp);
        }
            urlProperties = { ...urlProperties, ...metaData }; // STEP 3
        }
        return urlProperties;
    }   

, затем, на шаге 3, я могу увидеть все ключи в одном запросе с помощью: «req.headers.keys ()» илипри наведении на объект запроса.

Я подозреваю, что причина этого заключается в отложенной инициализации заголовков, но как я могу сохранить безопасную проверку, чтобы не получить никаких исключений во время выполнения.

Ниже приведена ошибка: enter image description here

PS: я также сохранил этот чек, но исправно:

 if (req.headers && req.headers.has('metadata'))

Нужна некоторая помощь!

Присоединение console.logs для req.headers, 1-й - на шаге 1, 2-й на шаге 3.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...