RunInCatalogScope for an async body — the ordinary case. Separate so the return type is a
promise rather than a promise-shaped generic, which makes a forgotten await a type error, and
because this is the async boundary: the connection's objects and edges are loaded here, before
the body starts, since the synchronous getters underneath cannot query.
RunInCatalogScopefor an async body — the ordinary case. Separate so the return type is a promise rather than a promise-shaped generic, which makes a forgottenawaita type error, and because this is the async boundary: the connection's objects and edges are loaded here, before the body starts, since the synchronous getters underneath cannot query.