Según el título, quiero resolver este mensaje de error: "Parsing error: Unexpected reserved word 'await'. (10:22)eslint"
Este es mi fragmento de código de trabajo actual:
import { WebClient } from '@slack/web-api'; import { prSummaryBotEnvVariables } from '../pr-summary-bot-env/env-exported-variables.js'; import { getUsersFirstAndLastName, removeUndefinedValuesFromArray } from '../utils/utils.js'; const botToken = prSummaryBotEnvVariables(); const client = new WebClient(botToken.botUserOauthToken); let slackUserEmails; const client = new WebClient(botToken.botUserOauthToken); let slackUserEmails; try { const { members } = await client.users.list(); slackUserEmails = members.map(member => member.profile.email); } catch (error) { console.error(error); } const slackUserNames = removeUndefinedValuesFromArray(getUsersFirstAndLastName(slackUserEmails)); export { slackUserNames }; Solo estoy usando la API de Slack para obtener los nombres de usuario de todos nuestros miembros y manipularlos antes de exportar la array . Probé esta solución con dos palabras clave async internas, pero no funcionó. ¿Cómo puedo refactorizar esto?
Actualizar:
Probé esta solución , pero solo obtengo una array vacía:
import { WebClient } from '@slack/web-api'; import { prSummaryBotEnvVariables } from '../pr-summary-bot-env/env-exported-variables.js'; import { getUsersFirstAndLastName, removeUndefinedValuesFromArray } from '../utils/utils.js'; const botToken = prSummaryBotEnvVariables(); const client = new WebClient(botToken.botUserOauthToken); let slackUserEmails; const slackUserNames = []; (async () => { try { const { members } = await client.users.list(); slackUserEmails = members.map((member) => member.profile.email); } catch (error) { console.error(error); } slackUserNames.push(removeUndefinedValuesFromArray(getUsersFirstAndLastName(slackUserEmails))); })(); console.log(slackUserNames); // empty array export { slackUserNames };Como se menciona en los comentarios, no puede usar la palabra clave await fuera de las funciones async . Por esa misma razón, no podrás exportar slackUserNames como variable, ya que depende de haber ejecutado previamente código asíncrono.
Un enfoque sencillo sería exportar una función asíncrona de su archivo que podría usar en otras partes de su proyecto:
import { WebClient } from '@slack/web-api'; import { prSummaryBotEnvVariables } from '../pr-summary-bot-env/env-exported-variables.js'; import { getUsersFirstAndLastName, removeUndefinedValuesFromArray } from '../utils/utils.js'; export async function getSlackUserNames() { const botToken = prSummaryBotEnvVariables(); const client = new WebClient(botToken.botUserOauthToken); let slackUserEmails; const client = new WebClient(botToken.botUserOauthToken); let slackUserEmails; try { const {members} = await client.users.list(); slackUserEmails = members.map(member => member.profile.email); } catch (error) { console.error(error); } const slackUserNames = removeUndefinedValuesFromArray(getUsersFirstAndLastName(slackUserEmails)); }Ahora podría llamar a esta función en otro lugar de su proyecto:
const slackUserNames = await getSlackuserNames(); console.log("Slack users are: ", slackUserNames);