I am fetching and processing the data from a spreadsheet as follows:
const getJsonSheet = async () => {
const response = await fetch('<FETCH-SPECIFIC-SPREADSHEET-LINK>');
const data = await response.json();
let cells = await data.feed.entry;
let table = {
massa:[],
description:[],
price:[],
imgLink:[]
};
await cells.map( cell => {
if ( parseInt(cell.gs$cell.row) > 1) {
let rowValue = parseInt(cell.gs$cell.row) - 2;
let inputValue = cell.gs$cell.inputValue;
switch (cell.gs$cell.col) {
case "1":
table.massa[rowValue] = inputValue;
break;
case "2":
table.description[rowValue] = inputValue;
break;
case "3":
table.price[rowValue] = inputValue;
break;
case "4":
table.imgLink[rowValue] = inputValue;
break;
default:
console.log('Cell out of range.')
}
}
})
return table;
};
export default getJsonSheet;
I import and execute getJsonSheet() in another file, assigning it's value to a variable, then I console.log this variable. I expected to have the table object logged into the console, but actually a Promise is logged. However, this logged promise is fullfilled and has the "table" object as it's result. I don't yet fully understand Promises, async and await - I'm new to this specific topic.
Is there a way to get the "table" object directly assigned to a variable so I can manipulate the DOM somewhere else using it?
PS:the data is being fetched correctly, since all I wanted is in the promise's result. My problem is in getting the promise's result assigned to a variable.