我正在创建一个简单的节点脚本来学习 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 方法是异步的(一定是因为使用它的方法也是异步的),因此该函数不一定会在另一个函数中进行第一次插入之前完成,从而导致异常。
有没有人找到一种方法来集中这些对象,这样我就不必在我的应用程序的每个异步函数中声明它们?