Проблема с экспортом асинхронного члена - PullRequest
0 голосов
/ 26 мая 2020

Итак, у меня возникла проблема, когда при экспорте асинхронной функции и импорте других членов этого файла, которые не являются асинхронными, они не определены.

Вот как это настроено:

functions.ts

export function getEnvironmentVariable(variable: string, defaultVal: string): string {
    return process.env[variable] ?? defaultVal;
}

export async function handleDiscordToGameChat(member: GuildMember, chatChannel: string, content: string): Promise<{
    ok: boolean;
    response: string
}> {
    const currentAuth = getAuthLvlFromMember(member);
    const apiKey = getApiKeyForAuth(currentAuth);

    if (!apiKey || currentAuth.rank < hsgRoleMap.GS.rank) {
        return {
            ok: false,
            response: 'Insufficient permissions.'
        };
    }

    const req = await fetch(`http://${API_ENDPOINT}/${isLocalServer() ? 'hsg-server' : 'hsg-rp'}/sendMessageToGame`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'token': apiKey
        },
        body: JSON.stringify({
            content,
            chatChannel,
            adminDets: {
                name: member.user.tag,
                authLvl: currentAuth.acronym
            }
        })
    });

    const data = await req.json();

    if (!data.ok) {
        return {
            ok: false,
            response: data.response
        };
    }

    return {
        ok: true,
        response: 'Successfully sent message.'
    };
}

При попытке доступа к экспортированному члену getEnvironmentVariable в другом файле (config.ts) через:

import { getEnvironmentVariable } from './utils/functions';

console.log(typeof getEnvironmentVariable); // undefined

Хотя , после удаления экспорта асинхронного члена он возвращает функцию. Следует ли мне хранить весь асинхронный экспорт в отдельном файле или около того?

РЕДАКТИРОВАТЬ: Забыл добавить: Моя IDE идентифицирует экспортированный член как функцию и не вызывает никаких ошибок компиляции, это только во время выполнения, которое проблема c.

1 Ответ

0 голосов
/ 26 мая 2020

Это может быть проблема с путем вашего оператора импорта. Возможно, ваш код не может найти файл, который экспортирует вашу функцию getEnvironmentVariable.

...