Я создаю простой скрипт узла, чтобы изучить функциональность Cosmos DB. Я хочу создать способ, чтобы не предоставлять следующее в верхней части каждой асинхронной функции (да, я знаю, что могу связать асинхронные вызовы с помощью, но это все равно означает, что я должен использовать новый экземпляр БД в верхней части каждой Итак, я хочу сделать что-то вроде этого:
const {database} = await client.databases.createIfNotExists({id: databaseId});
const {container} = await database.containers.createIfNotExists({id: containerId});
С учетом сказанного, я несколько часов ломал голову над этим и не могу найти способ создать одну базу данных и один контейнер для всех моих функций. Идея (но не реализация, потому что она не работает) состоит в том, чтобы сделать что-то вроде этого:
getConnections = async () => {
const {database} = await client.databases.createIfNotExists({id: databaseId});
const {container} = await database.containers.createIfNotExists({id: containerId});
let connections = {};
connections.db = database;
connections.container = container;
return connections;
};
Но поскольку метод getCoonections является асинхронным (а он должен быть асинхронным, поскольку методы, которые его используют, тоже), функция не обязательно завершится до того, как будет сделана первая вставка в другую функцию, тем самым вызывая исключение.
Кто-нибудь нашел способ централизовать эти объекты, чтобы мне не приходилось объявлять их в каждой асинхронной функции моего приложения?
main
функция или точка входа? - person Bergi   schedule 23.10.2018