@Kasra @Stephen_Suen @Shrey_Banga and any other JavaScript :mage: ♂
Is it possible at all to call an async function from inside a loop?
I’m trying to run a script that contains this loop:
tablesToClear.forEach(table => {
let recordsToDelete = table.records.map(record => record.id);
let recordsDeleted = await batchAnd('Delete', table, recordsToDelete);
if (recordsDeleted !== null) {
totalRecordsDeleted += recordsDeleted;
}
});
where batchAnd()
is defined as an async function
that makes a call to table.deleteRecordsAsync()
.
I’m getting this error:
ERROR
SyntaxError: await is only valid in async function
at new Function (<anonymous>)
at _callee2$ (blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:3359:53)
at tryCatch (blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:181:21)
at Generator.invoke [as _invoke] (blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:400:26)
at Generator.prototype.<computed> [as next] (blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:234:25)
at asyncGeneratorStep (blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:6:26)
at _next (blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:28:11)
at blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:35:9
at new Promise (<anonymous>)
at blob:https://block---falsh-z06h-lq-e-pb--68v3t0m.airtableblocks.com/e9e14464-0db0-424f-ad41-111819081f76:24:14
Here’s a copy of the base I’m testing it in for greater context:
I’m sure there’s something here that I’m not understanding about how async functions
work :man_shrugging:t2: