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);
根据标题,我想解决这个错误信息:"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);