async function waitForQueryExecution()

in functions/util.js [9:22]


async function waitForQueryExecution(queryExecutionId) {
  while (true) {
    const data = await athena.getQueryExecution({
      QueryExecutionId: queryExecutionId
    }).promise();
    const state = data.QueryExecution.Status.State;
    if (state === 'SUCCEEDED') {
      return;
    } else if (state === 'FAILED' || state === 'CANCELLED') {
      throw Error(`Query ${queryExecutionId} failed: ${data.QueryExecution.Status.StateChangeReason}`);
    }
    await new Promise(resolve => setTimeout(resolve, 100));
  }
}