How do I fix error: "Parsing error: Unexpected reserved word 'await'. (10:22)eslint"?

How do I fix error: "Parsing error: Unexpected reserved word 'await'. (10:22)eslint"?

根据标题,我想解决这个错误信息:"Parsing error: Unexpected reserved word 'await'. (10:22)eslint"

这是我当前的工作代码片段:

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 };

我只是将 Slack API to get all our members' usernames & do some manipulation with it before exporting the array. I tried 与两个内部 async 关键字一起使用,但它不起作用。我该如何重构它?

更新:

我试过 ,但我只得到一个空 array:

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 };

如评论中所述,您不能在 async 函数之外使用 await 关键字。出于同样的原因,您将无法将 slackUserNames 导出为变量,因为它取决于先前执行的异步代码。

一个简单的方法是从您的文件中导出一个异步函数,您可以在项目的其他部分使用它:

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));

}

现在您可以在项目的其他地方调用此函数:

const slackUserNames = await getSlackuserNames();
console.log("Slack users are: ", slackUserNames);