#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
. Вы также можете добавить aconsole.log(array)
во втором примере.2. Попробуйте добавить точку останова и посмотрите, почему она на этом останавливается.
3. @Florian Да, я добавил console.log(arr), он выводит статус успешно
4. @Шахар, я тоже это проверил. Похоже, что только ng build —prod имеет эту проблему, но ng serve —порт 4200 работает так, как ожидалось
5. @ramvinoth хорошо, теперь вы можете добавить a
console.log('inside if loop')
в свое условие if ?