ВОПРОС:
Я пытаюсь присвоить глобальным массивам результаты запросов к моей базе данных MongoDB.По сути, я пытался хранить ссылки на глобальные массивы внутри массива, чтобы я мог назначить всем им результаты запросов внутри цикла for.
Это представляется невозможным.Что бы вы предложили?
КОД:
var arrays = [global.array1, global.array2, global.array3];
var colsArray = ["array1","array2","array3"];
var promises = colsArray.map(col => global.fetchCollection(col));
Promise.all(promises).then(responses => {
for (var d = 0; d < responses.length; d++) {
arrays[d] = responses[d];
}
console.log("VALUE INSIDE ARRAY of global.arrays: "+arrays[0]);
console.log("VALUE OF global.array is still : "+global.array1);
})
ВЫХОД:
VALUE INSIDE ARRAY of global.arrays:: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VALUE OF global.array is still : undefined
Примечание:
Это сработает, конечно.Но совершенно неудовлетворительно, конечно:
var arrays = [global.array1, global.array2, global.array3];
var colsArray = ["array1","array2","array3"];
var promises = colsArray.map(col => global.fetchCollection(col));
Promise.all(promises).then(responses => {
global.array1 = responses[0];
global.array2 = responses[2];
global.array3 = responses[3];
})
РЕДАКТИРОВАТЬ:
Это не работает:
var arrays = [global.array1, global.array2, global.array3];
var colsArray = ["array1","array2","array3"];
var promises = colsArray.map(col => global.fetchCollection(col));
Promise.all(promises).then(responses => {
for (var d = 0; d < responses.length; d++) {
arrays[colsArray[d]] = responses[d];
}
console.log("VALUE INSIDE ARRAY of global.arrays: "+arrays[0]);
console.log("VALUE OF global.array is still : "+global.array1);
})