Я использую серию асинхронных карт для манипулирования массивом.
exports.MultiChannelInvoke = async function (bulkUploadArray) {
async.mapSeries(bulkUploadArray, async function (array, cb) {
let ap = array[0]
let apArray = ['PL', 'A', 'J', 'V', 'I'];
if (!apArray.includes(ap)) { // For Array's first value it is KL & it is getting inside this loop
//some manipulation
}
else {
//some manipulation
}
}, (err, results) => {
if (err) {
masterResult = { message: 'Failed During async Map', errorMessage: err }
} else {
let mongoData = batch;
uploadsummary.create(mongoData)
masterResult = { FinalResults: results }
}
})
return masterResult
}
Мой массив для массовой загрузки будет выглядеть следующим образом:
[
[
"KL",
{
"ms": "2147766904",
"desc": "APP-LIC JEEVAN POLICY,7878787878,30/01/19",
"ur": "DNDSER6911744",
"tap": "TA",
"tapupdate": [ "Array" ]
}
],
[
'PL',
{
ms: '3147766904',
desc: 'APP-LIC JEEVAN POLICY,9916957781,30/01/19',
ur: 'DNDSER6911745',
tap: 'TA',
tapupdate: [ Array ]
}
]
]
Так, в соответствии с моим массивом для массовой загрузки первое значение равно KL, и оно попадает в первый цикл if. (Который у меня естьупоминается в комментариях в коде). Таким образом, после того, как мы проникли внутрь и сделали манипуляции, он не учитывает значение второго массива. После окончания манипуляции для первого значения, он напрямую возвращает результат. Кто-нибудь может сказать мне, что я делаю не так? Или я не должен использовать серию асинхронных карт. Пожалуйста, предложите мне.