Javascript 如何将此代码从使用双等待转换为延迟加载导入的单等待
我使用的是Svelte和Protobuf生成的客户端 在Javascript 如何将此代码从使用双等待转换为延迟加载导入的单等待,javascript,typescript,refactoring,lazy-evaluation,lazy-initialization,Javascript,Typescript,Refactoring,Lazy Evaluation,Lazy Initialization,我使用的是Svelte和Protobuf生成的客户端 在/generated/index.ts中,我使用以下代码: import type { PlayerServiceClient } from './proto/player.client'; const transport = new GrpcWebFetchTransport({ baseUrl: 'http://localhost:3000/api' }); let playerService: PlayerServiceClien
/generated/index.ts
中,我使用以下代码:
import type { PlayerServiceClient } from './proto/player.client';
const transport = new GrpcWebFetchTransport({ baseUrl: 'http://localhost:3000/api' });
let playerService: PlayerServiceClient;
export const player = async (): Promise<PlayerServiceClient> =>
playerService ||
((playerService = new (await import('./player.client')).PlayerServiceClient(transport)),
playerService);
问题:
有没有办法在每个组件中仍然使用lazyimport()
,但不使用verbose-doublewait
我希望使用以下代码:
import { player } from "../generated";
let players: Player[];
(async () => {
players = await player.queryPlayers({ playerId: "1" });
})();
附加上下文:
我有许多不同的类型(以及相应的服务)(数百种)和许多不同的导航路线:这就是我需要延迟加载的原因。对于顶级
await
您可以只导出const player=await哦,谢谢。但我不明白。你能多写点吗?
import { player } from "../generated";
let players: Player[];
(async () => {
players = await player.queryPlayers({ playerId: "1" });
})();