Угол 11, если условие не выполняется

#angular

Вопрос:

У меня есть ошибка в угловом коде после обновления с углового 7 до 11, которая возникает только тогда, когда ng build --prod . Но при запуске ng serve --port 4200 он работает так, как ожидалось, без какой-либо причины ошибки.

Ниже приведен массив длины 1

 if(array != null) {
array.forEach(arr => {
   if(arr.status === 'fail') {
      some code...
   }
})
}
 

Для приведенного выше кода, если arr.status === 'fail' он выполняет код внутри блока if.
Но arr.status исполняется 'success' по этому сценарию. Даже если значение равно успеху, выполнение входит в блок if.

Поэтому я изменил код, как показано ниже, чтобы проверить его

 if(array != null) {
    for(let i = 0; i < array.length; i  ) {
       if(array[i].status === 'fail') {
          some code...
       }
    }
    }
 

В этом сценарии происходит следующее: значение i becomes 1 после итерации. В таком случае он не должен входить в блок if, но он входит в блок if, и код прерывается.

Существуют ли какие-либо критерии, которым я должен следовать при создании производственной сборки angular 11, или я допустил какую-либо ошибку при написании кода.

Комментарии:

1. Можете ли вы добавить a console.log(arr) перед условием if в первом примере ? Кстати, ваш второй пример не может сработать, вам нужно что-то изменить arr array . Вы также можете добавить a console.log(array) во втором примере.

2. Попробуйте добавить точку останова и посмотрите, почему она на этом останавливается.

3. @Florian Да, я добавил console.log(arr), он выводит статус успешно

4. @Шахар, я тоже это проверил. Похоже, что только ng build —prod имеет эту проблему, но ng serve —порт 4200 работает так, как ожидалось

5. @ramvinoth хорошо, теперь вы можете добавить a console.log('inside if loop') в свое условие if ?