В следующем коде obj1 и obj2 являются массивами.
if(obj2.length != 0) {
func(obj1, obj2);
}
//execute func only when obj2 is not empty
var func = (obj1, obj2) => {
const Channel = obj2.reduce((acc, curVal) => {
obj1.forEach((item) => {
if (curVal.Channel.includes('Name')) {
item.dataarr.push({ 'MobileNo': curVal.mobnum})
}
})
return obj1;
}, [])
};
Но когда obj2
пусто, я получаю эту ошибку:
(node:10837) UnhandledPromiseRejectionWarning: TypeError: obj2.reduce is not a function
at func (/home/user/Desktop/serv.js:708:37)
at breakdata (/home/user/Desktop/serv.js:720:5)
at cached.getMulti.then (/home/user/Desktop/serv.js:643:7)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:10837) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:10837) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Игнорируем эти строки из вышеприведенной ошибки:
at breakdata (/home/user/Desktop/serv.js:720:5)
at cached.getMulti.then (/home/user/Desktop/serv.js:643:7)\
, поскольку они выбрасываются, потому что obj2.reduce не даетлюбой вывод при возникновении исключения.
Как мне обработать: obj2.reduce is not a function
, когда массив obj2 пуст?Я не хочу, чтобы этот код генерировал исключения, поскольку генерируемый файл журнала огромен.Я не понимаю, как добавить блок catch здесь.Как мне это сделать?